/** * Check if plaintextPass or saved password of amember user matches password * of current record * @param User $user * @return bool true if password matches */ function checkPassword(Am_Record $record, User $user, $plaintextPass = null) { if (!$this->_passField) { throw new Am_Exception_NotImplemented(get_class($this) . "->checkPassword() is not implemented"); } if ($plaintextPass) { $salt = $this->_saltField ? $record->get($this->_saltField) : $record->get($this->_passField); return $this->_plugin->cryptPassword($plaintextPass, $salt, $user) === $record->get($this->_passField); } else { $saved = $this->_plugin->findPassword($user); if (!$saved) { return false; } if ($record->get($this->_passField) != $saved->pass) { return false; } if ($this->_saltField && $record->get($this->_saltField) != $saved->salt) { return false; } return true; } }