Пример #1
0
 /**
  * @param integer $userId
  * @return BOL_UserResetPassword
  */
 public function getNewResetPassword($userId)
 {
     $resetPassword = new BOL_UserResetPassword();
     $resetPassword->setUserId($userId);
     $resetPassword->setExpirationTimeStamp(time() + 24 * 3600);
     $resetPassword->setCode(md5(UTIL_String::generatePassword(8, 5)));
     $this->resetPasswordDao->save($resetPassword);
     return $resetPassword;
 }
Пример #2
0
 public function processResetForm($data)
 {
     $language = OW::getLanguage();
     $email = trim($data['email']);
     $user = $this->findByEmail($email);
     if ($user === null) {
         throw new LogicException($language->text('base', 'forgot_password_no_user_error_message'));
     }
     $resetPassword = $this->findResetPasswordByUserId($user->getId());
     if ($resetPassword !== null) {
         if ($resetPassword->getUpdateTimeStamp() > time()) {
             throw new LogicException($language->text('base', 'forgot_password_request_exists_error_message'));
         } else {
             $resetPassword->setUpdateTimeStamp($resetPassword->getUpdateTimeStamp() + self::PASSWORD_RESET_CODE_UPDATE_TIME);
             $this->resetPasswordDao->save($resetPassword);
         }
     } else {
         $resetPassword = $this->getNewResetPassword($user->getId());
     }
     $vars = array('code' => $resetPassword->getCode(), 'username' => $user->getUsername(), 'requestUrl' => OW::getRouter()->urlForRoute('base.reset_user_password_request'), 'resetUrl' => OW::getRouter()->urlForRoute('base.reset_user_password', array('code' => $resetPassword->getCode())));
     $mail = OW::getMailer()->createMail();
     $mail->addRecipientEmail($email);
     $mail->setSubject($language->text('base', 'reset_password_mail_template_subject'));
     $mail->setTextContent($language->text('base', 'reset_password_mail_template_content_txt', $vars));
     $mail->setHtmlContent($language->text('base', 'reset_password_mail_template_content_html', $vars));
     OW::getMailer()->send($mail);
 }