Ejemplo n.º 1
0
 public function executeComplete_signin(sfWebRequest $request)
 {
     $delay = 0;
     $this->errorMsg = null;
     if ($lToken = $request->getParameter('oauth_token')) {
         $lToken = OauthRequestTokenTable::retrieveByTokenKey($lToken);
         $lToken = $lToken->toOAuthToken();
         $lToken->verifier = $request->getParameter('oauth_verifier');
     } elseif ($lToken = $request->getParameter('code')) {
         // do nothing
     } elseif ($request->getParameter('error') == "access_denied") {
         $this->redirect('@auth_error');
     }
     $lObject = AuthApiFactory::factory($request->getParameter('service'));
     // check if it is a signin/signup or if the user wants
     // to add a new online-identity
     if ($this->getUser()->isAuthenticated() && $this->getUser()->getUserId()) {
         try {
             $lObject->addIdentifier($this->getUser()->getUser(), $lToken);
         } catch (Exception $e) {
             $this->getUser()->setFlash("error", $e->getMessage(), true);
             $delay = 5000;
             $this->errorMsg = $e->getMessage();
         }
     } else {
         try {
             $lUser = $lObject->doSignin($this->getUser(), $lToken);
             $this->getUser()->signIn($lUser);
         } catch (Exception $e) {
             $this->getUser()->setFlash("error", $e->getMessage(), true);
             $delay = 5000;
             $this->errorMsg = $e->getMessage();
         }
     }
     $this->delay = $delay;
     $this->setLayout(false);
 }