public function isValid() { $isValid = parent::isValid(); if ($isValid) { /** @var \User\Service\User $userService */ $userService = $this->getServiceLocator()->get('User\\Service\\User'); $data = parent::getData(); $user = new User(); $user->setEmail($data['email']); /** @var \User\Model\UserMapper $userMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); if ($userMapper->isActive($user) && !$data['password']) { $this->get('email')->setMessages(['Bạn đã đăng ký, vui lòng chọn đăng nhập để tiếp tục']); return false; } if (!$userService->isAvailableEmail($data['email'])) { return true; } if ($data['password'] != '' && !$userService->authenticate($data['email'], $data['password'])) { $this->get('email')->setMessages([\User\Form\Signin::ERROR_INVALID]); return false; } } return $isValid; }
public function findmentorAction() { if (!$this->getRequest()->isPost()) { return $this->page404(); } $data = $this->getRequest()->getPost(); $form = new SearchDetail($this->getServiceLocator()); $form->setData($data); if ($form->isValid()) { $user = new User(); $user->setEmail($data['email']); $activeKey = md5($user->getEmail() . DateBase::getCurrentDateTime()); $user->setActiveKey($activeKey); $user->setRole(User::ROLE_MEMBER); $user->setCreatedDateTime(DateBase::getCurrentDateTime()); $user->setCreatedDate(DateBase::getCurrentDate()); /** @var \User\Model\UserMapper $userMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); if (!$userMapper->isExistedEmail($user)) { $userMapper->save($user); Uri::autoLink('/user/user/sendemail', ['email' => $data['email'], 'activeKey' => $user->getActiveKey()]); $this->getJsonModel()->setVariables(['code' => 2, 'data' => 'Email kích hoạt tài khoản đã được gửi đến địa chỉ email của bạn. Kiểm tra hòm thư và làm theo hướng dẫn đễ kích hoạt tài khoản.']); return $this->getJsonModel(); } return $this->getViewModel(); } else { $this->getJsonModel()->setVariables(['code' => 1, 'data' => $form->getErrorMessagesList()]); } return $this->getJsonModel(); }
public function googleAction() { $request = $this->getRequest(); if (trim($request->getQuery('redirect'))) { $_SESSION['redirect'] = trim($request->getQuery('redirect')); } $viewModel = new ViewModel(); $viewModel->setTerminal(true); $response = $this->getResponse(); /* @var $googleLogin \User\Service\GoogleLogin */ require_once 'Google/Client.php'; require_once 'Google/Service/Oauth2.php'; require_once 'Google/Http/REST.php'; require_once 'Google/Http/Request.php'; require_once 'Google/Service/Resource.php'; require_once 'Google/Auth/OAuth2.php'; $config = $this->getServiceLocator()->get('Config'); $clientId = $config['login']['google']['clientId']; $clientSecret = $config['login']['google']['clientSecret']; $url = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on' ? 'https://' : 'http://'; $url .= $_SERVER['HTTP_HOST'] . '/user/signin/google'; $client = new \Google_Client(); $client->setApplicationName('MyFirstTest'); $client->setClientId($clientId); $client->setClientSecret($clientSecret); $client->setRedirectUri($url); $client->setScopes(array('https://www.googleapis.com/auth/userinfo.email', 'https://www.googleapis.com/auth/plus.me')); $error = $this->getRequest()->getQuery('error'); if ($error) { echo '<script>window.close()</script>'; } $code = $this->getRequest()->getQuery('code'); if ($code) { $client->authenticate($code); $_SESSION['access_token'] = $client->getAccessToken(); $redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); } else { $authUrl = $client->createAuthUrl(); return $this->redirect()->toUrl(filter_var($authUrl, FILTER_SANITIZE_URL)); } //TODO: xoa vi cam giac dau co can if (isset($_SESSION['access_token'])) { $client->setAccessToken($_SESSION['access_token']); } if ($client->isAccessTokenExpired()) { $authUrl = $client->createAuthUrl(); return $this->redirect()->toUrl(filter_var($authUrl, FILTER_SANITIZE_URL)); } //End TODO if ($client->getAccessToken()) { $oauth2 = new \Google_Service_Oauth2($client); $userInfoPlus = $oauth2->userinfo->get(); $_SESSION['access_token'] = $client->getAccessToken(); if (!$userInfoPlus->getEmail()) { echo '<script>window.opener.alert("Không tồn tại thông tin Email của tài khoản trên");window.close()</script>'; } $arrResponse = array('email' => $userInfoPlus->getEmail(), 'name' => $userInfoPlus->getName()); $user = new User(); $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); $serviceUser = $this->getServiceLocator()->get('User\\Service\\User'); if (!$serviceUser->authenticateGoogle($arrResponse['email'])) { $user->setActive('1'); $user->setEmail($arrResponse['email']); $user->setRole(\User\Model\User::ROLE_MEMBER); $user->setFullName($arrResponse['name']); $user->setCreatedDate(DateBase::getCurrentDate()); $user->setCreatedDateTime(DateBase::getCurrentDateTime()); $userMapper->save($user); // check nếu user đó đã dc mời tham gia dự án sẽ gắn luôn nó với dự án $projectUser = new \Work\Model\ProjectUser(); $projectUser->setUserEmail($user->getEmail()); $projectUser->setUserId($user->getId()); $projectUserMapper = $this->getServiceLocator()->get('\\Work\\Model\\ProjectUserMapper'); $projectUserMapper->updateUserId($projectUser); $this->redirect()->toUrl($url); } else { // check nếu user đó đã dc mời tham gia dự án sẽ gắn luôn nó với dự án $projectUser = new \Work\Model\ProjectUser(); $projectUser->setUserEmail($serviceUser->getUser()->getEmail()); $projectUser->setUserId($serviceUser->getUser()->getId()); $projectUserMapper = $this->getServiceLocator()->get('\\Work\\Model\\ProjectUserMapper'); $projectUserMapper->updateUserId($projectUser); if (!$_SESSION['redirect']) { return $this->redirect()->toUrl('/'); } else { $redirect = $_SESSION['redirect']; unset($_SESSION['redirect']); return $this->redirect()->toUrl($redirect); } } } else { $this->redirect()->toUrl($client->createAuthUrl()); } return $response; }
/** * active user */ public function activeaccountAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); $email = $request->getQuery('u'); $activeKey = $request->getQuery('c'); if (!$email || !$activeKey) { $this->redirect()->toUrl('/'); } $form = new ActiveAccount(); /* @var $userMapper \User\Model\UserMapper */ $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper'); /** @var \User\Model\User $user */ $user = new User(); $translator = $this->getServiceLocator()->get('translator'); $user->setActiveKey($activeKey); $user->setEmail($email); $user = $userMapper->getUserNotActive($user); $viewModel = new ViewModel(); if (!$user) { return $viewModel->setTemplate('error/404'); } if ($this->getRequest()->isPost()) { $data = $this->getRequest()->getPost(); $form->setData($data); if ($form->isValid()) { $user->exchangeArray((array) $data); $user->setActiveKey(null); /** @var \User\Service\User $userService */ $userService = $this->getServiceLocator()->get('User\\Service\\User'); $userService->signup($user); vdump($user); die; if ($userService->authenticate($user->getEmail(), $data['password'])) { return $this->forward()->dispatch('Home\\Controller\\Index', ['action' => 'index', 'user' => $user]); } } } $viewModel->setVariables(['email' => $email]); $viewModel->setVariables(['form' => $form]); return $viewModel; }
public function createFromForm(Form $form) { $user = new UserModel(); $user->setEmail($form->getValue('email'))->setDisplayName($form->getValue('display_name'))->setSalt($this->randomBytes(16))->setPassword($this->hashPassword($form->getValue('password'), $user->getSalt())); $userId = $this->getUserMapper()->insert($user); }
/** * */ public function getactivecodeAction() { /** @var \Zend\Http\Request $request */ $request = $this->getRequest(); $sl = $this->getServiceLocator(); /* @var $userMapper \User\Model\UserMapper() */ $userMapper = $sl->get('User\\Model\\UserMapper'); /* @var $userService \User\Service\User() */ $userService = $sl->get('User\\Service\\User'); /* @var $form \User\Form\GetActiveCode() */ $form = $sl->get('User\\Form\\GetActiveCode'); $form->setInputFilter($sl->get('User\\Form\\GetActiveCodeFilter')); $message = ''; if ($request->isPost()) { $form->setData($request->getPost()); if ($form->isValid()) { $validator = new \Zend\Validator\EmailAddress(); $user = new User(); $translator = $sl->get('translator'); if ($validator->isValid($request->getPost('inputStr')) && $request->getPost('captcha')) { $user->setEmail($request->getPost('inputStr')); } else { $user->setUsername($request->getPost('inputStr')); } $us = $userMapper->get(null, $user->getUsername(), $user->getEmail()); if (!$us) { $message = '<p class="error">' . $translator->translate('Địa chỉ email hoặc tên đăng nhập không chính xác') . '</p>'; } else { if ($us->getActive() != null) { $message = '<p class="error">' . $translator->translate('Tài khoản của bạn đã được kích hoạt') . '</p>'; } else { $userService->sendActiveLink($user); $message = '<p>' . $translator->translate('Xác nhận gửi lại link kích hoạt tài khoản thành công, vui lòng kiểm tra lại địa chỉ email của bạn để nhận link kích hoạt tài khoản') . '</p>'; } } } } $viewModel = new ViewModel(array('form' => $form, 'message' => $message)); return $viewModel; }