diff options
Diffstat (limited to 'Database/meth_dbuser.php')
| -rw-r--r-- | Database/meth_dbuser.php | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/Database/meth_dbuser.php b/Database/meth_dbuser.php new file mode 100644 index 0000000..8e6ec35 --- /dev/null +++ b/Database/meth_dbuser.php @@ -0,0 +1,154 @@ +<?php +// **************************************************************************** +// Description: Ensemble de méthodes pour étendre dbmain +// afin de gérer les utilisateurs +// **************************************************************************** +// +// Import de dbmain +require_once(dirname( __FILE__ )."/dbmain.php"); +// Extension de cette classe avec dbmain +class DbUser extends DbMain { + // Enregistrement d'un nouvel utilisateur + final public function add_user($email, $pass, $is_admin, $is_user, $is_consultant) { + // On vérifie si l'email existe deja dans la bdd + $exist = $this->check_exist_email($email); + // Si non + if (!$exist) { + // Chiffrement du pass + $crypt = $this->crypt_pass($pass); + // Préparation de la requète + $reqAddUser = "INSERT INTO ".$this->tableUserAccount." + (email, password, inscriptionDate, isAdmin, isUser, isConsultant) + VALUES (?, ?, ?, ?, ?, ?)"; + // Execution de la requète + $this->exec_cmd($reqAddUser, + array($email, + $crypt, + date("Y-m-d H:i:s"), + $is_admin, + $is_user, + $is_consultant + ) + ); + // Retourne 1 pour réussite + return 1; + } else { + // Retourne 0 pour échec + return 0; + } + } + + // Suppresion d'un utilisateur + final public function del_user($id) { + // Préparation de la requète pour voir si l'utilisateur existe + $reqCheckExistId = "SELECT EXISTS(SELECT * FROM ".$this->tableUserAccount." WHERE id = ?)"; + // Exécution de la requète + $data = $this->exec_cmd($reqCheckExistId, array($id))->fetchAll(PDO::FETCH_NUM); + // Si il existe + if ($data[0][0]) { + // Préparation de la requète pour suppression + $reqDelUser = "DELETE FROM ".$this->tableUserAccount." WHERE id = ?"; + // Exécution de la requète + $this->exec_cmd($reqDelUser, array($id)); + // Retourne 1 pour réussite + return 1; + } else { + // Retourne 0 pour échec + return 0; + } + } + + // Mise à jour des infos d'un utilisateur + final public function update_user_info($lastname, $firstname, $job, $degree, + $capability, $description, $phoneNumber, + $adress, $zipCode, $city, $userId) { + // Préparation de la requète pour mise à jour des infos + $reqAddInfo = "REPLACE INTO ".$this->tableUserInfo." + (lastname, firstname, job, degree, capability, + description, phoneNumber, adress, zipCode, city, userId) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + // Exécution de la requète + $this->exec_cmd($reqAddInfo, + array($lastname, $firstname, $job, $degree, + $capability, $description, $phoneNumber, + $adress, $zipCode, $city, $userId + ) + ); + } + + // Enregistrement d'une mission + final public function register_mission($subject, $note, $review, $userId, $consultantId) { + // Vérification de l'existance de l'id de consultant + $exist = $this->check_exist_consultant($consultantId); + // Si il existe + if ($exist) { + // Préparation de la requète pour enregistrement de la mission + $reqAddMission = "INSERT INTO ".$this->tableMission." + (date, subject, note, review, userId, consultantId) + VALUES (?, ?, ?, ?, ?, ?)"; + // Exécution de la requète + $this->exec_cmd($reqAddMission, + array(date("Y-m-d H:i:s"), $subject, + $note, $review, + $userId, $consultantId + ) + ); + // Retourne 1 pour réussite + return 1; + } else { + // Retourne 0 pour échec + return 0; + } + } + + // Vérification de la combinaison email - pass pour authentification + final public function check_credential($email, $pass) { + // Préparation de la requète pour récupérer les infos ou l'email est présent + $reqCheckCredential = "SELECT id, password + FROM ".$this->tableUserAccount." WHERE email = ? "; + // Chiffrement du mot de passe + $crypt = $this->crypt_pass($pass); + // Execution de la requète + $data = $this->exec_cmd($reqCheckCredential, array($email))->fetchAll(PDO::FETCH_ASSOC); + // Vérifiaction de correspondance email & pass + foreach ($data as $rows) { + if ($rows["password"] == $crypt) { + return $rows["id"]; + } + } + } + + // Vérification de la combinaison email - jeton d'auto-login pour authentification + final public function check_token_autologin($email, $token) { + // Préparation de la requète pour récupérer les infos ou l'email est présent + $reqCheckToken = "SELECT id, tokenAutoLogin + FROM ".$this->tableUserAccount." WHERE email = ?"; + // Exécution de la requète + $data = $this->exec_cmd($reqCheckToken, array($email))->fetchAll(PDO::FETCH_ASSOC); + // Vérifiaction de correspondance email & jeton d'auto-connection + foreach ($data as $rows) { + if ($rows["tokenAutoLogin"] == $token) { + return $rows["id"]; + } + } + } + + // Mise à jour du jeton d'auto-login + final public function update_token_autologin($email, $token) { + // Préparation de la requète pour mise à jour du jeton d'auto-connection + $reqUpdateToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = ? + WHERE email = ?"; + // Execution de la requète + $this->exec_cmd($reqUpdateToken, array($token, $email))->fetchAll(PDO::FETCH_ASSOC); + } + + // Supression du jeton d'auto-login + final public function delete_token_autologin($email) { + // Préparation de la requète pour supression du jeton d'auto-connection + $reqDeleteToken = "UPDATE ".$this->tableUserAccount." SET tokenAutoLogin = NULL + WHERE email = ?"; + // Execution de la requète + $this->exec_cmd($reqDeleteToken, array($email))->fetchAll(PDO::FETCH_ASSOC); + } +} +?>
\ No newline at end of file |
