Exemple #1
0
 public static function retrieve($username = null, $hashed_password = null, $token = null)
 {
     $sql = 'SELECT username, address, password, salt, is_admin, ' . 'token, token_expiration ' . 'FROM users';
     if (!is_null($username)) {
         $sql .= sprintf(' WHERE password="******" AND username="******"', $hashed_password, $username);
     } else {
         if (!is_null($token)) {
             $sql .= sprintf(' WHERE token="%s" AND token_expiration>="%s"', $token, Database::now());
         }
     }
     $result = HackableDatabase::select($sql);
     $users = array();
     foreach ($result as $r) {
         $is_admin = $r['is_admin'] === '1' ? true : false;
         $users[] = new HackableUser($r['username'], $r['address'], $r['password'], $r['salt'], $is_admin, $r['token'], $r['token_expiration']);
     }
     if (!is_null($username)) {
         if (empty($users)) {
             throw new \Lib\Exceptions\NotFoundException();
         }
         return $users[0];
     }
     if (!is_null($token)) {
         if (empty($users)) {
             throw new \Lib\Exceptions\UnauthorizedException();
         }
         return $users[0];
     }
     return $users;
 }