Example #1
0
 public static function getUser($bdd, $hash, $pseudo = NULL, $email = NULL)
 {
     if ($pseudo) {
         $request = $bdd->prepare('SELECT * FROM driver WHERE pseudo = ?');
         $request->execute(array($pseudo));
         if ($donnees = $request->fetch()) {
             $salt = $donnees["salt"];
             if ($donnees["hash"] == hash('sha512', $salt + $hash, false)) {
                 $user = new User($pseudo, $donnees["hash"], $donnees["email"]);
                 $user->setId($donnees["driver_id"]);
                 $user->setPseudo($donnees["pseudo"]);
                 $user->setFirstname($donnees["first_name"]);
                 $user->setLastname($donnees["last_name"]);
                 $user->setToken(User::generateRandomString(200));
                 $request = $bdd->prepare("UPDATE driver SET token=:token WHERE driver_id = :driver");
                 $request->execute(array('token' => $user->getToken(), 'driver' => $user->getId()));
                 return $user;
             }
         } else {
             return null;
         }
     } else {
         if ($email) {
             $request = $bdd->prepare('SELECT * FROM driver WHERE email = ?');
             $request->execute(array($email));
             if ($donnees = $request->fetch()) {
                 $salt = $donnees["salt"];
                 if ($donnees["hash"] == hash('sha512', $salt + $hash, false)) {
                     $user = new User($donnees["pseudo"], $donnees["hash"], $email);
                     $user->setId($donnees["id"]);
                     $user->setFirstname($donnees["first_name"]);
                     $user->setLastname($donnees["last_name"]);
                     $user->setToken(generateRandomString(200));
                     $request = $bdd->prepare("UPDATE driver SET token=:token WHERE driver_id = :driver");
                     $request->execute(array('token' => $user->getToken(), 'driver' => $user->getId()));
                     return $user;
                 }
             } else {
                 return null;
             }
         } else {
             return null;
         }
     }
 }