public function isValidResetPasswordKey(User_Model_User $user, $key) { $first = substr($key, 0, 32); $last = substr($key, 42); $timeScrambled = substr($key, 32, 10); $firstOk = md5($user->id . $user->getSalt() . $timeScrambled) == $first; $lastOk = md5($user->email . $user->getPwd() . $timeScrambled) == $last; $time = Agana_Util_DateTime::scrambledCharsToTimestamp($timeScrambled); $day = 24 * 60 * 60; $linkAge = time() - floatval($time); $ageOk = $day - $linkAge >= 0; return $firstOk && $lastOk && $ageOk; }
/** * Prepare data for update password * * @param User_Model_User $user * @return Array */ private function _prepareUpdatePwdData($user) { $data = array('pwd' => $user->getPwd(), 'rnd_salt' => $user->getSalt()); return $data; }