public function isPasswordValid(sfAuthUser $user, $password) { if ($user->getPassword() === sfAuthUtil::getHashedPasswordBySaltAndString($user->getSalt(), $password)) { return true; } //if we havent returned yet use the event dispatcher to notify until an event returns true $event = $this->dispatcher->notifyUntil(new sfEvent($this, 'sf_auth.is_password_valid')); if ($event->isProcessed()) { return $event->getReturnValue(); } return false; }
public function doClean($values) { if (!isset($values['email'])) { throw sfException('Error'); } $user = Doctrine::getTable('sfAuthUser')->findOneByEmail($values['email']); if ($user) { if ($user->getResetHash() && time() < $user->getResetHashCreatedAt() + 86400) { throw new sfValidatorError($this, 'You have requested a password less than 24 hours ago'); } $user->setResetHash(sfAuthUtil::getHashedPasswordBySaltAndString(time(), uniqid())); $user->setResetHashCreatedAt(time()); $user->save(); return array_merge($values, array('user' => $user)); } //Throw user cant be found throw new sfValidatorError($this, 'User not found'); }
public function setPassword($value) { $this->setSalt(uniqid()); parent::_set('password', sfAuthUtil::getHashedPasswordBySaltAndString($this->getSalt(), $value)); }