示例#1
0
文件: Table.php 项目: grlf/eyedock
 /**
  * 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;
     }
 }