示例#1
0
 public function changemailAction()
 {
     $code = $this->dispatcher->getParam('code');
     $username = $this->dispatcher->getParam('username');
     $email = $this->dispatcher->getParam('email');
     $user = new Models\User();
     try {
         $user->changeEmail($username, $email, $code);
         $this->flash->success('用户邮箱已更改');
     } catch (\Exception $e) {
         $this->showException($e, $user->getMessages());
     }
 }
示例#2
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);
     }
 }
示例#3
0
 /**
  * @operationName("users mobile binding")
  * @operationDescription("users mobile binding")
  */
 public function bindMobileAction()
 {
     $bindingForm = new MobileBindingForm(new User());
     $curUser = Login::getCurrentUser();
     $data = $this->request->getPut();
     $data['userId'] = $curUser['id'];
     if (!$bindingForm->isValid($data)) {
         return $this->showInvalidMessagesAsJson($bindingForm);
     }
     try {
         if (!User::bindMobile($data['mobile'], $data['captcha'], $data['userId'])) {
             return $this->showErrorMessageAsJson(400, 'BIND_MOBILE_FAILURE');
         }
     } catch (Exception\LogicException $e) {
         return $this->showExceptionAsJson($e);
     }
     return $this->showResponseAsJson(['mobile' => $data['mobile'], 'status' => true]);
 }
 /**
  * @param $validator
  * @param string $attribute
  * @return bool
  */
 public function validate($validator, $attribute)
 {
     $value = $validator->getValue($attribute);
     $usr = Login::getCurrentUser();
     if (!$usr['id']) {
         $validator->appendMessage(new Validation\Message('ERR_USER_NOT_LOGIN', $attribute));
         return false;
     }
     /**
      * @var $usr User
      */
     $usr = User::findFirst('id = ' . $usr['id']);
     if (!Login::passwordVerify($value, $usr->password)) {
         $message = $this->getOption('message');
         if (!$message) {
             //$message = 'The old password provided is incorrect.';
             $message = 'ERR_USER_OLD_PASSWORD_NOT_MATCH';
         }
         $validator->appendMessage(new Validation\Message($message, $attribute, null, null));
         return false;
     }
     return true;
 }
示例#5
0
 /**
  * @operationName("用户收藏文章列表")
  * @operationDescription("用户收藏文章列表")
  */
 public function starsAction()
 {
     $me = Login::getCurrentUser();
     $user = User::findFirstById($me['id']);
     $this->view->setVar('item', $user);
     $userId = $user->id;
     $query = array('page' => $this->request->getQuery('page', 'int', 1));
     $star = new Star();
     $starsItemQuery = $star->getStars($userId);
     $paginator = new \Eva\EvaEngine\Paginator(array("builder" => $starsItemQuery, "limit" => 5, "page" => $query['page']));
     $paginator->setQuery($query);
     $pager = $paginator->getPaginate();
     $this->view->setVar('pager', $pager);
 }
示例#6
0
文件: Login.php 项目: skybird/EvaUser
 public function loginByCookie($tokenString)
 {
     $this->getDI()->getEventsManager()->fire('user:beforeLoginByCookie', $tokenString);
     $tokenArray = explode('|', $tokenString);
     if (!$tokenArray || count($tokenArray) < 3) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_FORMAT_INCORRECT'));
         return false;
     }
     $token = new Entities\Tokens();
     $tokenInfo = $token::findFirst(array("conditions" => "sessionId = :sessionId: AND token = :token: AND userHash = :userHash:", "bind" => array('sessionId' => $tokenArray[0], 'token' => $tokenArray[1], 'userHash' => $tokenArray[2])));
     if (!$tokenInfo) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_NOT_FOUND'));
         return false;
     }
     if ($tokenInfo->expiredAt < time()) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_EXPIRED'));
         return false;
     }
     $userinfo = User::findFirst($tokenInfo->userId);
     $rememberMeHash = $this->getRememberMeHash($userinfo);
     //User changed status or password
     if ($rememberMeHash != $tokenInfo->userHash) {
         $this->appendMessage(new Message('ERR_USER_REMEMBER_TOKEN_ILLEGAL'));
         return false;
     }
     $login = new Login();
     $login->id = $tokenInfo->userId;
     $userinfo = $login->login();
     return $userinfo;
 }