2015-11-09 21:05:57 +00:00
|
|
|
<?php require_once __ROOT__.'/manager/security.php';
|
|
|
|
|
|
|
|
/**************************************************************/
|
|
|
|
/* _ _ ____ _____ ____ ____ _____ ____ ___ */
|
|
|
|
/* | | | / ___|| ____| _ \ | _ \| ____| _ \ / _ \ */
|
|
|
|
/* | | | \___ \| _| | |_) | | |_) | _| | |_) | | | | */
|
|
|
|
/* | |_| |___) | |___| _ < | _ <| |___| __/| |_| | */
|
|
|
|
/* \___/|____/|_____|_| \_\ |_| \_\_____|_| \___/ */
|
|
|
|
/* */
|
|
|
|
/**************************************************************/
|
|
|
|
|
2015-11-10 08:17:41 +00:00
|
|
|
class userRepo extends DBAccess{
|
2015-11-09 21:05:57 +00:00
|
|
|
/* VERIFIE L'EXISTENCE D'UN UTILISATEUR DANS LA BDD
|
|
|
|
*
|
|
|
|
* @identifiant<String> l'identifiant de l'utilisateur recherché
|
|
|
|
*
|
|
|
|
* @return UID<String> si l'utilisateur est dans la BDD, retourne son UID
|
|
|
|
* @return FALSE<Boolean> FAUX si l'utilisateur n'est pas présent dans la BDD
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static function UID($identifiant){
|
|
|
|
/*** on cherche un utilisateur avec cet identifiant ***/
|
2015-11-10 09:50:43 +00:00
|
|
|
$getUtilisateurUID = DataBase::getPDO()->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :identifiant");
|
2015-11-09 21:05:57 +00:00
|
|
|
$getUtilisateurUID->execute(array(
|
|
|
|
':identifiant' => $identifiant
|
|
|
|
));
|
|
|
|
|
|
|
|
// on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur
|
|
|
|
return $getUtilisateurUID->fetch()['id'];
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-11-10 09:50:43 +00:00
|
|
|
|
|
|
|
/* RENVOIE LES INFORMATIONS D'UN UTILISATEUR D'UID DONNÉ
|
|
|
|
*
|
|
|
|
* @utilisateurUID<int> l'UID de l'utilisateur duquel on veut les infos
|
|
|
|
*
|
|
|
|
* @return utilisateur<Array> tableau associatif contenant tout les champs de la BDD pour cet utilisateur
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static function info($utilisateurUID){
|
|
|
|
// on considère que le semestre existe
|
|
|
|
$getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :utilisateurUID");
|
|
|
|
$getUtilisateurInfo->execute(array(
|
|
|
|
':utilisateurUID' => $utilisateurUID
|
|
|
|
));
|
|
|
|
|
|
|
|
// on retourne le résultat en supprimant les doublons à indices numériques
|
|
|
|
return $getUtilisateurInfo->fetch();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* CREE UN NOUVEL UTILISATEUR DANS LA BASE DE DONNES
|
|
|
|
*
|
|
|
|
* @identifiant<String> l'identifiant (unique) de l'utilisateur à créer
|
|
|
|
* @prenom<String> le prénom du nouvel utilisateur
|
|
|
|
* @nom<String> le nom du nouvel utilisateur
|
|
|
|
* @mail<String> le mail du nouvel utilisateur
|
|
|
|
* @mdp<String> le mot de passe du nouvel utilisateur
|
|
|
|
* @droits<Array> les droits à donner au nouvel utilisateur
|
|
|
|
*
|
|
|
|
* @return UID<String> l'UID du nouvel utilisateur s'il a bien été créé
|
|
|
|
* @return created<Boolean> VRAI si l'utilisateur n'existait pas déjà* et qu'il a bien été créé
|
|
|
|
* (*) Si aucun autre n'avait le même @identifiant
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public static function creer($identifiant, $prenom, $nom, $mail, $mdp, $droits){
|
|
|
|
/* [1] On normalise les données
|
|
|
|
=================================================================================================*/
|
|
|
|
foreach($droits as $droit)
|
|
|
|
if( !is_int( array_search($droit, getPermissions()) ) ) // si le droit n'est pas dans la liste des droits existants
|
|
|
|
return false; // on retourne une erreur comme quoi le droit est inexistant
|
|
|
|
|
|
|
|
|
|
|
|
$identifiant = strtolower($identifiant); // on met l'identifiant en minuscule
|
|
|
|
$prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule
|
|
|
|
$nom = strtoupper($nom); // nom en majuscules
|
|
|
|
$mail = strtolower($mail); // email en minuscules
|
|
|
|
$mdp = sha1($mdp); // on hash le password (SHA1)
|
|
|
|
$droits = implode(',', $droits); // on met le droit sous forme de chaine
|
|
|
|
|
|
|
|
/* [2] On vérifie que l'utilisateur n'est pas déjà créé
|
|
|
|
=================================================================================================*/
|
|
|
|
if( $this->UID($identifiant) ) // si on a un résultat, c'est qu'un utilisateur a déjà cet identifiant (UID)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
/* [3] On créé le nouvel utilisateur
|
|
|
|
=================================================================================================*/
|
|
|
|
$creationUtilisateur = DataBase::getPDO()->prepare("INSERT INTO utilisateur(identifiant, prenom, nom, mail, mdp, droits) ".
|
|
|
|
"VALUES(:identifiant, :prenom, :nom, :mail, :mdp, :droits)");
|
|
|
|
$creationUtilisateur->execute(array(
|
|
|
|
':identifiant' => $identifiant,
|
|
|
|
':prenom' => $prenom,
|
|
|
|
':nom' => $nom,
|
|
|
|
':mail' => $mail,
|
|
|
|
':mdp' => $mdp,
|
|
|
|
':droits' => $droits
|
|
|
|
));
|
|
|
|
|
|
|
|
|
|
|
|
/* [4] On vérifie que l'utilisateur a bien été créé
|
|
|
|
=================================================================================================*/
|
|
|
|
return $this->UID($identifiant);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2015-11-09 21:05:57 +00:00
|
|
|
}
|