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()); } }
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); } }
/** * @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; }
/** * @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); }
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; }