Ejemplo n.º 1
0
 /**
  * @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;
 }