Esempio n. 1
0
 public function registerAction()
 {
     $session = $this->getDI()->get('session');
     $accessToken = $session->get('access-token');
     if (!$accessToken) {
         return $this->response->redirect($this->getDI()->getConfig()->oauth->registerFailedRedirectUri);
     }
     $this->view->token = $accessToken;
     $this->view->suggestUsername = $this->getSuggestUsername($accessToken);
     $email = isset($accessToken['remoteEmail']) ? $accessToken['remoteEmail'] : '';
     $this->view->suggestEmail = $email;
     if ($email) {
         $userManager = new UserModels\User();
         $userManager->assign(array('email' => $email));
         if ($userManager->isExist()) {
             $user = new Models\Login();
             $user->assign(array('email' => $email));
             $user->connectWithExistEmail($accessToken);
             $this->flashSession->success('SUCCESS_OAUTH_AUTO_CONNECT_EXIST_EMAIL');
             return $this->response->redirect($this->getDI()->getConfig()->oauth->loginSuccessRedirectUri);
         }
     }
     if (!$this->request->isPost()) {
         return;
     }
     $user = new Models\Login();
     $user->assign(array('username' => $this->request->getPost('username'), 'email' => $this->request->getPost('email')));
     $this->view->suggestEmail = isset($accessToken['remoteEmail']) ? $accessToken['remoteEmail'] : '';
     try {
         $user->register();
         $session->remove('access-token');
         $this->flashSession->success('SUCCESS_OAUTH_USER_REGISTERED');
         return $this->response->redirect($this->getDI()->getConfig()->oauth->loginSuccessRedirectUri);
     } catch (\Exception $e) {
         $this->showException($e, $user->getMessages());
         return $this->response->redirect($this->getDI()->getConfig()->oauth->registerFailedRedirectUri);
     }
 }