summaryrefslogtreecommitdiff
path: root/Database/meth_dbuser.php
diff options
context:
space:
mode:
Diffstat (limited to 'Database/meth_dbuser.php')
-rw-r--r--Database/meth_dbuser.php154
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