public function loginAction() { if (!$this->getRequest()->isPost()) { return; } $loginForm = new LoginForm($this->getRequest()->getPost('loginForm')); if (!$loginForm->isValid()) { $this->nwFlashMessenger()->addErrorMessage(MessageConstants::ERROR_INVALID_FORM); return; } $loginFormData = $loginForm->getData(); $authAdapter = $this->getAuthAdapter(); $authAdapter->setIdentity($loginFormData['email'])->setCredential(NovumWareHelpers::encryptPassword($loginFormData['password'])); $authenticationResult = $authAdapter->authenticate(); if (!$authenticationResult->isValid()) { $this->nwFlashMessenger()->addErrorMessage('Invalid email / password combination'); return; } $memberDataPrefixed = $authAdapter->getResultRowObject(); $membersMapper = $this->getMembersMapper(); $memberData = $membersMapper->unprefixDataArray($memberDataPrefixed); $memberModel = $membersMapper->createModelFromData($memberData); /*@var $memberModel \Registration\Model\MemberModel */ $this->getAuthSession()->write($memberModel->toArray()); $this->nwFlashMessenger()->addSuccessMessage('You have successfully logged in'); if ($memberModel->role == 'admin') { return $this->redirect()->toRoute('admin'); } $returnUrl = $this->getReturnUrl(); if ($returnUrl) { return $this->redirect()->toUrl($returnUrl); } else { return $this->redirect()->toRoute('account'); } }
/** * Faz a autenticação de usuários * @return ViewModel */ public function loginAction() { if ($this->authService->hasIdentity()) { return $this->redirect()->toRoute('ums'); } $this->layout('login/layout'); $loginForm = new LoginForm(); $message = null; $request = $this->getRequest(); if ($request->isPost()) { $loginForm->setInputFilter(new LoginFilter()); $loginForm->setData($request->getPost()); if ($loginForm->isValid()) { $data = $loginForm->getData(); if ($this->userAuthentication($data)) { return $this->redirect()->toRoute('ums'); } else { $message = 'Credenciais inválidas.'; } } } return new ViewModel(array('form' => $loginForm, 'message' => $message)); }