Implémentation de : 1@CréationUtilisateur 2@CréationGroupe 3@AjouterUtilisateurDansGroupe 4@récupérerListeUtilisateursDunGroupe
This commit is contained in:
parent
5613157786
commit
c3fc8b5e8a
|
@ -23,8 +23,9 @@ class DataBase{
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
/*** création d'un utilisateur dans la bdd ***/
|
/*** création d'un utilisateur dans la bdd ***/
|
||||||
/*********************************************/
|
/*********************************************/
|
||||||
public function ajouterUtilisateur($username, $prenom, $nom, $email, $password, $droits){
|
public function creerUtilisateur($username, $prenom, $nom, $email, $password, $droits){
|
||||||
$currentId = $this->pdo->lastInsertId();
|
$getLastId = $this->pdo->query('SELECT max(`id_utilisateur`) as `id` FROM `utilisateurs`');
|
||||||
|
$lastId = (int) $getLastId->fetch()['id'];
|
||||||
|
|
||||||
// on applique une normalisation
|
// on applique une normalisation
|
||||||
$prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule
|
$prenom = ucwords( strtolower($prenom) ); // majuscule à chaque mot sinon minuscule
|
||||||
|
@ -43,11 +44,9 @@ class DataBase{
|
||||||
':droits' => mysql_escape_string($droits )
|
':droits' => mysql_escape_string($droits )
|
||||||
));
|
));
|
||||||
|
|
||||||
// echo var_dump( $this->pdo->errorInfo() ).'<br>';
|
$added = (int) $this->pdo->lastInsertId();
|
||||||
|
|
||||||
$addedId = $this->pdo->lastInsertId();
|
if( $added > $lastId ) // si on a bien ajouté un entrée
|
||||||
|
|
||||||
if( $currentId+1 == $addedId ) // si on a bien ajouté un entrée
|
|
||||||
return 'success';
|
return 'success';
|
||||||
else
|
else
|
||||||
return 'error';
|
return 'error';
|
||||||
|
@ -60,7 +59,109 @@ class DataBase{
|
||||||
/****************************************/
|
/****************************************/
|
||||||
/*** création d'un groupe dans la bdd ***/
|
/*** création d'un groupe dans la bdd ***/
|
||||||
/****************************************/
|
/****************************************/
|
||||||
|
public function creerGroupe($nom){
|
||||||
|
$getLastId = $this->pdo->query('SELECT max(`id_groupe`) as `id` FROM `groupes`');
|
||||||
|
$lastId = (int) $getLastId->fetch()['id'];
|
||||||
|
|
||||||
|
// on applique une normalisation
|
||||||
|
$nom = strtoupper($nom); // nom en majuscules
|
||||||
|
|
||||||
|
$req = $this->pdo->prepare("INSERT INTO `groupes`(`id_groupe`, `nom`) VALUES(default, :nom)");
|
||||||
|
|
||||||
|
$req->execute(array(
|
||||||
|
':nom' => mysql_escape_string($nom)
|
||||||
|
));
|
||||||
|
|
||||||
|
// echo var_dump( $this->pdo->errorInfo() ).'<br>';
|
||||||
|
|
||||||
|
$added = (int) $this->pdo->lastInsertId();
|
||||||
|
|
||||||
|
var_dump($this->pdo->lastInsertId());
|
||||||
|
|
||||||
|
if( $added > $lastId ) // si on a bien ajouté un entrée
|
||||||
|
return 'success';
|
||||||
|
else
|
||||||
|
return 'error';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************/
|
||||||
|
/*** ajout d'un utilisateur à un groupe dans la bdd ***/
|
||||||
|
/******************************************************/
|
||||||
|
public function ajouterUtilisateurGroupe($utilisateur, $groupe){
|
||||||
|
|
||||||
|
// on cherche un utilisateur avec ce pseudo
|
||||||
|
$getUtilisateurUID = $this->pdo->prepare("SELECT `id_utilisateur` FROM `utilisateurs` WHERE `pseudo` = :username");
|
||||||
|
$getUtilisateurUID->execute(array(
|
||||||
|
':username' => $utilisateur
|
||||||
|
));
|
||||||
|
|
||||||
|
// si on trouve, on le définit, sinon on retourne "unknown_user"
|
||||||
|
if( $utilisateurUID = $getUtilisateurUID->fetch()['id_utilisateur'] )
|
||||||
|
$utilisateurUID = (int) $utilisateurUID;
|
||||||
|
else
|
||||||
|
return 'unknown_user';
|
||||||
|
|
||||||
|
|
||||||
|
// on cherche un groupe avec ce nom
|
||||||
|
$getGroupeUID = $this->pdo->prepare("SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom");
|
||||||
|
$getGroupeUID->execute(array(
|
||||||
|
':nom' => $groupe
|
||||||
|
));
|
||||||
|
|
||||||
|
// si on trouve, on le définit, sinon on retourne "unknown_group"
|
||||||
|
if( $groupeUID = $getGroupeUID->fetch()['id_groupe'] )
|
||||||
|
$groupeUID = (int) $groupeUID;
|
||||||
|
else
|
||||||
|
return 'unknown_group';
|
||||||
|
|
||||||
|
// si on a l'UID utilisateur & l'UID groupe => on créé l'association
|
||||||
|
$asso = $this->pdo->prepare("INSERT INTO `association_utilisateur_groupe`(`id_utilisateur`, `id_groupe`) VALUES( (SELECT `id_utilisateur` FROM `utilisateurs` WHERE `id_utilisateur` = :utilisateur), (SELECT `id_groupe` FROM `groupes` WHERE `id_groupe` = :groupe) )");
|
||||||
|
$asso->execute(array(
|
||||||
|
':utilisateur' => $utilisateurUID,
|
||||||
|
':groupe' => $groupeUID
|
||||||
|
));
|
||||||
|
|
||||||
|
return 'success';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/******************************************************/
|
||||||
|
/*** retourne la liste des utilisateurs d'un groupe ***/
|
||||||
|
/******************************************************/
|
||||||
|
public function listeUtilisateurGroupe($groupe){
|
||||||
|
// on cherche un groupe avec ce nom
|
||||||
|
$getGroupeUID = $this->pdo->prepare("SELECT `id_groupe` FROM `groupes` WHERE `nom` = :nom");
|
||||||
|
$getGroupeUID->execute(array(
|
||||||
|
':nom' => $groupe
|
||||||
|
));
|
||||||
|
|
||||||
|
// si on trouve pas le groupe, on retourne "unknown_group"
|
||||||
|
if( !($groupeUID = $getGroupeUID->fetch()['id_groupe']) )
|
||||||
|
return 'unknown_group';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// si le groupe existe => on créé récupère ses utilisateurs
|
||||||
|
$asso = $this->pdo->prepare("SELECT `u`.`pseudo`, `u`.`prenom`, `u`.`nom`, `u`.`email`, `u`.`droits` ".
|
||||||
|
"FROM `utilisateurs` as `u`, `groupes` as `g`, `association_utilisateur_groupe` as `asso` ".
|
||||||
|
"WHERE `u`.`id_utilisateur` = `asso`.`id_utilisateur` ".
|
||||||
|
"AND `g`.`id_groupe` = `asso`.`id_groupe` ".
|
||||||
|
"AND `g`.`nom` = :groupe ".
|
||||||
|
"ORDER BY `u`.`pseudo` ");
|
||||||
|
$asso->execute(array(
|
||||||
|
':groupe' => $groupe
|
||||||
|
));
|
||||||
|
|
||||||
|
$userlist = $asso->fetchAll();
|
||||||
|
|
||||||
|
if( count($userlist) == 0 ) // si résultat vide
|
||||||
|
return 'empty';
|
||||||
|
else
|
||||||
|
return $userlist; // sinon on retourne le tableau
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -38,23 +38,61 @@
|
||||||
/* création d'un groupe */
|
/* création d'un groupe */
|
||||||
/************************/
|
/************************/
|
||||||
case 'create':
|
case 'create':
|
||||||
$areSetParam = isset($request->username) && isset($request->prenom) && isset($request->nom) && isset($request->email) && isset($request->password) && isset($request->droits); // les arguments existent
|
$areSetParam = isset($request->nom) ; // l'argument existe
|
||||||
$typeOkParam = $areSetParam && is_string($request->username) && is_string($request->prenom) && is_string($request->nom) && is_string($request->email) && is_string($request->password) && is_string($request->droits); // ils sont tous 2 des string
|
$typeOkParam = $areSetParam && is_string($request->nom); // si c'est une string
|
||||||
$nEmptyParam = $typeOkParam && strlen($request->username) > 0 && strlen($request->prenom) > 0 && is_string($request->nom) && is_string($request->email) && is_string($request->password) && is_string($request->droits); // d'au moins 1 caractère
|
$nEmptyParam = $typeOkParam && strlen($request->nom) > 0; // d'au moins 1 caractère
|
||||||
$usernameCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->username); // username bon format
|
$nomCheck = $nEmptyParam && preg_match('/^[a-z -]{1,50}$/i', $request->nom); // nom bon format
|
||||||
$prenomCheck = $usernameCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format
|
|
||||||
$nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format
|
|
||||||
$emailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->email); // email bon format
|
|
||||||
$passwordCheck = $emailCheck && preg_match('/^[\w -]{6,100}$/i', $request->password); // password bon format
|
|
||||||
$droitsCheck = $passwordCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format
|
|
||||||
|
|
||||||
if( $droitsCheck ){ // si tout les paramètres sont bons
|
if( $nomCheck ){ // si tout les paramètres sont bons
|
||||||
require('database.php');
|
require('database.php');
|
||||||
$answer->request = $db->ajouterUtilisateur($request->username, $request->prenom, $request->nom, $request->email, $request->password, $request->droits);
|
$answer->request = $db->creerGroupe($request->nom);
|
||||||
}else
|
}else
|
||||||
$answer->request = 'param_error';
|
$answer->request = 'param_error';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/**************************************/
|
||||||
|
/* ajout d'un utilisateur à un groupe */
|
||||||
|
/**************************************/
|
||||||
|
case 'add':
|
||||||
|
$areSetParam = isset($request->utilisateur) && isset($request->groupe); // les arguments existent
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->utilisateur) && is_string($request->groupe); // si c'est des strings
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->utilisateur) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère
|
||||||
|
$utilisateurCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->utilisateur); // utilisateur (username) bon format
|
||||||
|
$groupeCheck = $utilisateurCheck && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format
|
||||||
|
|
||||||
|
if( $groupeCheck ){ // si tout les paramètres sont bons
|
||||||
|
require('database.php');
|
||||||
|
$answer->request = $db->ajouterUtilisateurGroupe($request->utilisateur, $request->groupe);
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
/*****************************************/
|
||||||
|
/* retourne les utilisateurs d'un groupe */
|
||||||
|
/*****************************************/
|
||||||
|
case 'userlist':
|
||||||
|
$areSetParam = isset($request->groupe); // l'argument existe
|
||||||
|
$typeOkParam = $areSetParam && is_string($request->groupe); // si c'est une string
|
||||||
|
$nEmptyParam = $typeOkParam && strlen($request->groupe) > 0; // d'au moins 1 caractère
|
||||||
|
$groupeCheck = $nEmptyParam && preg_match('/^[a-z -]{1,50}$/i', $request->groupe); // groupe (nom) bon format
|
||||||
|
|
||||||
|
if( $groupeCheck ){ // si tout les paramètres sont bons
|
||||||
|
require('database.php');
|
||||||
|
|
||||||
|
$userlist = $db->listeUtilisateurGroupe($request->groupe);
|
||||||
|
|
||||||
|
if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs
|
||||||
|
$answer->userlist = $userlist;
|
||||||
|
$answer->request = 'success';
|
||||||
|
}else // si on a pas récupéré de liste, alors c'est que $userlist est un message d'erreur
|
||||||
|
$answer->answer = $userlist;
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
|
|
|
@ -82,7 +82,7 @@
|
||||||
|
|
||||||
if( $droitsCheck ){ // si tout les paramètres sont bons
|
if( $droitsCheck ){ // si tout les paramètres sont bons
|
||||||
require('database.php');
|
require('database.php');
|
||||||
$answer->request = $db->ajouterUtilisateur($request->username, $request->prenom, $request->nom, $request->email, $request->password, $request->droits);
|
$answer->request = $db->creerUtilisateur($request->username, $request->prenom, $request->nom, $request->email, $request->password, $request->droits);
|
||||||
}else
|
}else
|
||||||
$answer->request = 'param_error';
|
$answer->request = 'param_error';
|
||||||
break;
|
break;
|
||||||
|
|
129
test.php
129
test.php
|
@ -1,26 +1,131 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
require('manager/user.php');
|
|
||||||
|
/*** CRÉATION D'UTILISATEUR ***/
|
||||||
|
|
||||||
|
// require('manager/user.php');
|
||||||
|
|
||||||
|
// $request = new stdClass();
|
||||||
|
// $answer = new stdClass();
|
||||||
|
|
||||||
|
// $request->level_1 = 'create';
|
||||||
|
// $request->username = 'mrd1609a';
|
||||||
|
// $request->prenom = 'adrien';
|
||||||
|
// $request->nom = 'ligou marques';
|
||||||
|
// $request->email = 'adrien.marques-ligou@etu.iut-tlse3.fr';
|
||||||
|
// $request->password = ' Test_Password _';
|
||||||
|
// $request->droits = 'student';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// user_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// echo var_dump( $answer );
|
||||||
|
|
||||||
|
// echo "<br><br><br><br><br><br><br>It works !";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*** CRÉATION GROUPE ***/
|
||||||
|
|
||||||
|
// require('manager/groups.php');
|
||||||
|
|
||||||
|
// $request = new stdClass();
|
||||||
|
// $answer = new stdClass();
|
||||||
|
|
||||||
|
// $request->level_1 = 'create';
|
||||||
|
// $request->nom = 'F';
|
||||||
|
|
||||||
|
|
||||||
|
// groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
// echo var_dump( $answer );
|
||||||
|
|
||||||
|
// echo "<br><br><br><br><br><br><br>It works !";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*** AJOUT D'UN UTILISATEUR À UN GROUPE ***/
|
||||||
|
|
||||||
|
// require('manager/groups.php');
|
||||||
|
|
||||||
|
// $request = new stdClass();
|
||||||
|
// $answer = new stdClass();
|
||||||
|
|
||||||
|
// $request->level_1 = 'add';
|
||||||
|
// $request->utilisateur = 'mrd1609a'; // utilisateur.username
|
||||||
|
// $request->groupe = 'E'; // groupe.nom
|
||||||
|
|
||||||
|
|
||||||
|
// groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
// echo var_dump( $answer );
|
||||||
|
|
||||||
|
// echo "<br><br><br><br><br><br><br>It works !";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*** AFFICHER LES MEMBRES D'UN GROUPE ***/
|
||||||
|
|
||||||
|
require('manager/groups.php');
|
||||||
|
|
||||||
$request = new stdClass();
|
$request = new stdClass();
|
||||||
$answer = new stdClass();
|
$answer = new stdClass();
|
||||||
|
|
||||||
$request->level_1 = 'create';
|
$request->level_1 = 'userlist';
|
||||||
$request->username = 'mrd1609a';
|
$request->groupe = 'E'; // groupe.nom
|
||||||
$request->prenom = 'adrien';
|
|
||||||
$request->nom = 'ligou marques';
|
|
||||||
$request->email = 'adrien.marques-ligou@etu.iut-tlse3.fr';
|
|
||||||
$request->password = ' Test_Password _';
|
|
||||||
$request->droits = 'student';
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
user_switch_level_1($request, $answer);
|
|
||||||
|
|
||||||
|
|
||||||
|
groups_switch_level_1($request, $answer);
|
||||||
|
|
||||||
echo var_dump( $answer );
|
echo var_dump( $answer );
|
||||||
|
|
||||||
echo "<br><br><br><br><br><br><br>It works !";
|
echo "<br><br><br><br><br><br><br>It works !";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
Loading…
Reference in New Issue