/**
  * @NoAdminRequired
  * @NoSubadminRequired
  *
  * @return JSONResponse
  */
 public function create($name)
 {
     try {
         $sessionId = $this->session->getId();
     } catch (SessionNotAvailableException $ex) {
         $resp = new JSONResponse();
         $resp->setStatus(Http::STATUS_SERVICE_UNAVAILABLE);
         return $resp;
     }
     try {
         $sessionToken = $this->tokenProvider->getToken($sessionId);
         $loginName = $sessionToken->getLoginName();
         try {
             $password = $this->tokenProvider->getPassword($sessionToken, $sessionId);
         } catch (PasswordlessTokenException $ex) {
             $password = null;
         }
     } catch (InvalidTokenException $ex) {
         $resp = new JSONResponse();
         $resp->setStatus(Http::STATUS_SERVICE_UNAVAILABLE);
         return $resp;
     }
     $token = $this->generateRandomDeviceToken();
     $deviceToken = $this->tokenProvider->generateToken($token, $this->uid, $loginName, $password, $name, IToken::PERMANENT_TOKEN);
     return ['token' => $token, 'deviceToken' => $deviceToken];
 }
Ejemplo n.º 2
0
 /**
  * Update password of the browser session token if there is one
  *
  * @param string $password
  */
 public function updateSessionTokenPassword($password)
 {
     try {
         $sessionId = $this->session->getId();
         $token = $this->tokenProvider->getToken($sessionId);
         $this->tokenProvider->setPassword($token, $sessionId, $password);
     } catch (SessionNotAvailableException $ex) {
         // Nothing to do
     } catch (InvalidTokenException $ex) {
         // Nothing to do
     }
 }
Ejemplo n.º 3
0
 /**
  * Checks if the given password is a token.
  * If yes, the password is extracted from the token.
  * If no, the same password is returned.
  *
  * @param string $password either the login password or a device token
  * @return string|null the password or null if none was set in the token
  */
 private function getPassword($password)
 {
     if (is_null($password)) {
         // This is surely no token ;-)
         return null;
     }
     try {
         $token = $this->tokenProvider->getToken($password);
         try {
             return $this->tokenProvider->getPassword($token, $password);
         } catch (PasswordlessTokenException $ex) {
             return null;
         }
     } catch (InvalidTokenException $ex) {
         return $password;
     }
 }
Ejemplo n.º 4
0
 /**
  * @NoAdminRequired
  * @NoSubadminRequired
  *
  * @return JSONResponse
  */
 public function create($name)
 {
     try {
         $sessionId = $this->session->getId();
     } catch (SessionNotAvailableException $ex) {
         return $this->getServiceNotAvailableResponse();
     }
     try {
         $sessionToken = $this->tokenProvider->getToken($sessionId);
         $loginName = $sessionToken->getLoginName();
         try {
             $password = $this->tokenProvider->getPassword($sessionToken, $sessionId);
         } catch (PasswordlessTokenException $ex) {
             $password = null;
         }
     } catch (InvalidTokenException $ex) {
         return $this->getServiceNotAvailableResponse();
     }
     $token = $this->generateRandomDeviceToken();
     $deviceToken = $this->tokenProvider->generateToken($token, $this->uid, $loginName, $password, $name, IToken::PERMANENT_TOKEN);
     return ['token' => $token, 'loginName' => $loginName, 'deviceToken' => $deviceToken];
 }