/** * @param \Application\Controller\AbstractActionController $controller * @return bool */ public function validate($controller, $lang) { $entityManager = $controller->getEntityManager(); $translator = $controller->getTranslator(); $data = $this->getData(); $email = $data['email']; $password = $data['password']; $user = $entityManager->getRepository('\\User\\Entity\\User')->findOneBy(array('email' => $email)); if ($user && $user->checkPassword($password)) { if ($user->isActivated()) { $user->authenticate(); $user->lastLogin($entityManager); return true; } else { if ($user->getLastLogin() == null) { $msg = $translator->translate('You must confirm your email to be able to login'); $controller->flashMessenger()->addErrorMessage($msg); $controller->redirect()->toUrl('/' . $lang . "/user/register/confirm?email=" . $email . '&type=needConfirm'); return false; } else { $msg = $translator->translate('Your account has been blocked, Please contact your Admin'); $controller->flashMessenger()->addErrorMessage($msg); $controller->redirect()->toUrl('/' . $lang . "/user/register/confirm?email=" . $email . '&type=accBlook'); return false; } } } else { $this->addNonElementMessage('danger', $translator->translate('Wrong username or password')); } return False; }