121 lines
3.5 KiB
PHP
121 lines
3.5 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @brief Classe DAO relatif à la classe user
|
|
*/
|
|
class user_dao extends dao {
|
|
/**
|
|
* @brief Récupère les informations d'un utilisateur
|
|
* @arg $id login de l'utilisateur à récupérer
|
|
* @return tableau clé valeur contenant les informations ou FALSE
|
|
*/
|
|
public function select($id) {
|
|
//Mise en place de la requête
|
|
$query = "SELECT * FROM `user` WHERE `login`='$id'";
|
|
|
|
// On récupère les informations suite à la requête
|
|
$return = $this->db->query($query)->fetch();
|
|
|
|
//On retourne les infos
|
|
return $return;
|
|
}
|
|
|
|
/**
|
|
* @brief Insert un nouvel utilisateur dans la base de données
|
|
* @arg $objet information de l'utilisateur à ajouter
|
|
*/
|
|
public function insert(&$objet) {
|
|
//On récupère les informations à ajouter
|
|
$login = $objet->getLogin();
|
|
$passwd = $objet->getPassword();
|
|
$nom = $objet->getNom();
|
|
$prenom = $objet->getPrenom();
|
|
$mail = $objet->getMail();
|
|
|
|
//On prépare la requête SQL
|
|
$query = "INSERT INTO `user`(`login`,`pwd`,`nom`,`prenom`,`dateinscription`, `email`)
|
|
VALUES ('$login','$passwd','$nom','$prenom',NOW(), '" . $mail . "')";
|
|
|
|
//On exécute la requête
|
|
try {
|
|
$this->db->query($query);
|
|
return TRUE;
|
|
} catch (Exception $ex) {
|
|
$ex = NULL;
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Met à jour un utilisateur avec les nouvelles données spécifiée
|
|
* @arg $objet objet user contenant les nouvelles données
|
|
* @note le login est le seul élément inchangeable. On se sert de ce dernier pour mettre à jour la base de données
|
|
*/
|
|
public function update(&$object) {
|
|
//On récupère les données de l'utilisateur
|
|
$login = $object->getLogin();
|
|
$passwd = $object->getPassword();
|
|
$nom = $object->getNom();
|
|
$prenom = $object->getPrenom();
|
|
$mail = $object->getMail();
|
|
|
|
//On prépare la requête
|
|
$query = "UPDATE `user`
|
|
SET `pwd`='$passwd', `nom`='$nom', `prenom`='$prenom', `email`='$mail'
|
|
WHERE login='$login'";
|
|
|
|
//On envoie la requête
|
|
$result = $this->db->query($query);
|
|
|
|
//On renvoie le résultat
|
|
if ($result->rowCount() == 0) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
public function updateNoPassword($object) {
|
|
$login = $object->getLogin();
|
|
$nom = $object->getNom();
|
|
$prenom = $object->getPrenom();
|
|
$mail = $object->getMail();
|
|
|
|
//On prépare la requête
|
|
$query = "UPDATE `user`
|
|
SET `nom`='$nom', `prenom`='$prenom', `email`='$mail'
|
|
WHERE login='$login'";
|
|
|
|
//On envoie la requête
|
|
$result = $this->db->query($query);
|
|
|
|
//On renvoie le résultat
|
|
if ($result->rowCount() == 0) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @brief Supprime un utilisateur de la base
|
|
* @arg $id login de l'utilisateur à supprimer
|
|
* @note la suppression d'un utilisateur entraine la suppression de ses parties et de ses réponses avec le ON DELETE CASCADE
|
|
*/
|
|
public function delete($id) {
|
|
//On prépare la requête SQL
|
|
$query = "DELETE FROM `user` WHERE `login`='$id'";
|
|
|
|
//On envoie la requête SQL
|
|
$result = $this->db->query($query);
|
|
|
|
if ($result->rowCount() == 0) {
|
|
return FALSE;
|
|
} else {
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
?>
|