Example #1
0
 public function testTokenGenerate()
 {
     $options = array('prefix' => 123456, 'salt' => 'us3rmanag3r');
     $email = '*****@*****.**';
     $expected = '006956d2bc0127492315a10d7432858c6e6ed4eb24860dfcbec93dd1eb7e4627';
     $this->assertEqual($expected, Token::generate($email, $options));
     $options['salt'] = 'userm4n4ger';
     $expected = '0658b7bded39eae35cfb996e3d2b759526e6a35fea9b9ecd75ff20ca4eb71c69';
     $this->assertEqual($expected, Token::generate($email, $options));
     $options['type'] = 'md5';
     $expected = '853a77ca78669592b7175a15083b4347';
     $this->assertEqual($expected, Token::generate($email, $options));
     $options['prefix'] = 'li3';
     $expected = 'e4b7e045f0b80cc96904190d90b84934';
     $this->assertEqual($expected, Token::generate($email, $options));
 }
Example #2
0
 /**
  * Logic to request password reset for user
  *
  * @param array $conditions
  * @return int
  */
 public static function requestPasswordReset(array $conditions = array())
 {
     $self = static::_object();
     if ($user = $self::first(compact('conditions'))) {
         $time = new \DateTime();
         $reset = PasswordResets::first(array('conditions' => array('user_id' => $user->id)));
         if ($reset) {
             $expires = new \DateTime($reset->expires);
             if ($expires <= $time) {
                 $reset->delete();
             } else {
                 return PasswordResets::RESET_TOKEN_EXISTS;
             }
         }
         if (!$reset || !$reset->exists()) {
             $expires = clone $time;
             $expires->modify(LI3_UM_PasswordResetExpires);
             $token = Token::generate($user->email);
             $reset = PasswordResets::create(array('user_id' => $user->id, 'expires' => $expires->format('Y-m-d H:i:s'), 'token' => $token));
             if ($reset->save()) {
                 $link = Router::match(array('li3_usermanager.Users::resetPassword', 'id' => $user->id, 'token' => $token), $self::$request, array('absolute' => true));
                 Mailer::$_data['subject'] = 'Your password reset link!';
                 Mailer::$_data['from'] = LI3_UM_PasswordResetEmailFrom;
                 Mailer::$_data['to'] = $user->email;
                 Mailer::$_data['body'] = 'This is your password reset link:' . "\n" . $link;
                 return PasswordResets::GENERATED_NEW_RESET_TOKEN;
             }
         }
     }
 }