Ejemplo n.º 1
0
 /**
  * @param $id
  * @return Response
  * @throws InvalidParameter
  */
 public function verify($id)
 {
     $email = MapperFactory::getEmailMapper()->getFromId($id);
     if (!$email) {
         return Response::error('Invalid email verification', Response::STATUS_NOTFOUND);
     }
     $token = $this->request->input('token');
     if ($email->getToken() !== $token) {
         return Response::error('Invalid email verification', Response::STATUS_UNAUTHORIZED);
     }
     if ($email->getUser()->getEmail() !== $email->getEmail()) {
         return Response::error('Invalid email verification: email mismatch', Response::STATUS_INVALID_INPUT);
     }
     if ($email->isExpired()) {
         return Response::error('Invalid email verification: token expired', Response::STATUS_INVALID_INPUT);
     }
     $user = $email->getUser();
     if (!$user instanceof User) {
         throw new InvalidParameter("User type mismatch.");
     }
     $user->setEmailVerified(true);
     $mapper = \Neuron\MapperFactory::getUserMapper();
     if (!$mapper instanceof \CatLab\Accounts\Mappers\UserMapper) {
         throw new InvalidParameter("Mapper must be UserMapper instance.");
     }
     $mapper->update($user);
     return $this->module->login($this->request, $user);
 }
Ejemplo n.º 2
0
 public function sendVerificationEmail(Module $module)
 {
     return;
     $email = new Email();
     $email->setEmail($this->getEmail());
     $email->setExpires(new DateTime('next week'));
     $email->setToken(TokenGenerator::getSimplifiedToken(6));
     $email->setUser($this);
     $email->setVerified(false);
     MapperFactory::getEmailMapper()->create($email);
     $template = new Template('CatLab/Accounts/mails/verification.phpt');
     $template->set('user', $this);
     $template->set('verify_url', $email->getVerifyURL($module->getRoutePath()));
     $mail = new Mail();
     $mail->setSubject('Email verification');
     $mail->setTemplate($template);
     $mail->getTo()->add($this->getEmail());
     $mail->setFrom(Config::get('mailer.from.email'));
     Mailer::getInstance()->send($mail);
 }
 /**
  * Return an error (string) or redirect
  * @param DeligatedUser $deligatedUser
  * @param $email
  * @param $password
  * @return Response|string
  * @throws ExpectedType
  */
 private function processLogin(DeligatedUser $deligatedUser, $email, $password)
 {
     $mapper = \Neuron\MapperFactory::getUserMapper();
     ExpectedType::check($mapper, UserMapper::class);
     $user = $mapper->getFromLogin($email, $password);
     if ($user) {
         // Everything okay
         // Link the deligated user to this user.
         $deligatedUser->setUser($user);
         MapperFactory::getDeligatedMapper()->update($deligatedUser);
         return $this->module->login($this->request, $user);
     } else {
         // Check if we have this email address
         $user = $mapper->getFromEmail($email);
         if ($user) {
             return 'PASSWORD_INCORRECT';
         } else {
             return 'USER_NOT_FOUND';
         }
     }
 }