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); } }