Esempio n. 1
0
 /**
  * Creates and inserts into the database the password recovery request.
  * 
  * @param User $user The user that requests password recovery
  * @param string $ip Current IP address of the request
  * @return PasswordRecoveryRequest
  */
 public function createPasswordRecoveryRequest(User $user, $ip)
 {
     $request = PasswordRecoveryRequest::create($user, $ip, time());
     $id = $this->conn->fetchColumn('SELECT `id` FROM `' . CoreTables::PASSWORD_RECOVERY_TBL . '` WHERE `requestIp` = :ip AND `requestTime` > :minTime', [':ip' => $request->getRequestIp(), ':minTime' => time() - PasswordRecoveryRequest::REQUEST_INTERVAL_TIME]);
     if (!empty($id)) {
         throw new PasswordRecoveryException('Error while saving the password recovery request.');
     }
     $request->insert($this->conn);
     return $request;
 }