Etape 1 : déploiement de l'ajout d'un module en tant que correcteur
This commit is contained in:
parent
57357fd444
commit
19632629c9
|
@ -265,6 +265,58 @@ class DataBase{
|
||||||
return $listeAnnees;
|
return $listeAnnees;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* modifie le caractère "admin" d'un utilisateur
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @admin<Boolean> VRAI si admin, FAUX sinon
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return updated<Boolean> VRAI si la modification a été faite
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function setAdmin($utilisateur, $admin){
|
||||||
|
// on vérifie l'existence de l'utilisateur
|
||||||
|
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
|
||||||
|
|
||||||
|
return userRepo::setAdmin($utilisateurUID, $admin);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* modifie le caractère "référent" d'un utilisateur
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @master<Boolean> VRAI si master, FAUX sinon
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return updated<Boolean> VRAI si la modification a été faite
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function setMaster($utilisateur, $master){
|
||||||
|
// on vérifie l'existence de l'utilisateur
|
||||||
|
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
|
||||||
|
|
||||||
|
return userRepo::setMaster($utilisateurUID, $master);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ajoute un module qu'un utilisateur peut corriger
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @module<int> l'UID du module à ajouter
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return added<Boolean> VRAI si module ajouté, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function correcteurAjouterModule($utilisateur, $module){
|
||||||
|
// on vérifie l'existence de l'utilisateur
|
||||||
|
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
|
||||||
|
|
||||||
|
return userRepo::addModule($utilisateurUID, $module);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************/
|
/**********************************************************/
|
||||||
/* _____ _____ ____ _ _ _____ ______ _____ */
|
/* _____ _____ ____ _ _ _____ ______ _____ */
|
||||||
/* / ____| __ \ / __ \| | | | __ \| ____|/ ____| */
|
/* / ____| __ \ / __ \| | | | __ \| ____|/ ____| */
|
||||||
|
|
|
@ -119,7 +119,106 @@ class userRepo extends DBAccess{
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* modifie le caractère "admin" d'un utilisateur
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @admin<Boolean> VRAI si admin, FAUX sinon
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return updated<Boolean> VRAI si la modification a été faite
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function setAdmin($utilisateur, $admin){
|
||||||
|
/* [1] On récupère les droits actuels de l'utilisateur
|
||||||
|
=========================================================*/
|
||||||
|
if( !($utilisateurInfo=userRepo::info($utilisateur)) ) return false;
|
||||||
|
|
||||||
|
$droitsArray = explode(',', $utilisateurInfo['droits'] );
|
||||||
|
|
||||||
|
/* [2] On modifie les droits en fonction des paramètres
|
||||||
|
=========================================================*/
|
||||||
|
if( $admin && !in_array('admin', $droitsArray) ) // si on doit ajouter le droit et qu'il n'y est pas encore
|
||||||
|
array_push($droitsArray, 'admin'); // => on ajoute 'admin'
|
||||||
|
|
||||||
|
if( !$admin && in_array('admin', $droitsArray) ) // si on doit enlever le droit et qu'il y est
|
||||||
|
array_splice($droitsArray, array_search('admin', $droitsArray), 1 ); // => on enleve 'admin'
|
||||||
|
|
||||||
|
$droitsString = implode(',', $droitsArray);
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On modifie les droits dans la BDD
|
||||||
|
=========================================================*/
|
||||||
|
$modifierAdmin = DataBase::getPDO()->prepare("UPDATE utilisateur SET droits = :droits WHERE identifiant = :identifiant");
|
||||||
|
$modifierAdmin->execute(array( ':droits' => $droitsString, ':identifiant' => $utilisateur ));
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] On vérifie que les changements on bien pris effet
|
||||||
|
=========================================================*/
|
||||||
|
if( !($utilisateurInfoVerif=userRepo::info($utilisateur)) ) return false;
|
||||||
|
|
||||||
|
return $utilisateurInfoVerif['droits'] == $droitsString; // si les droits de la BDD sont les mêmes que ceux calculés, c'est que c'est ok
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* modifie le caractère "référent" d'un utilisateur
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @master<Boolean> VRAI si master, FAUX sinon
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return updated<Boolean> VRAI si la modification a été faite
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public static function setMaster($utilisateur, $master){
|
||||||
|
/* [1] On récupère les droits actuels de l'utilisateur
|
||||||
|
=========================================================*/
|
||||||
|
if( !($utilisateurInfo=userRepo::info($utilisateur)) ) return false;
|
||||||
|
|
||||||
|
$droitsArray = explode(',', $utilisateurInfo['droits'] );
|
||||||
|
|
||||||
|
/* [2] On modifie les droits en fonction des paramètres
|
||||||
|
=========================================================*/
|
||||||
|
if( $master && !in_array('master', $droitsArray) ) // si on doit ajouter le droit et qu'il n'y est pas encore
|
||||||
|
array_push($droitsArray, 'master'); // => on ajoute 'master'
|
||||||
|
|
||||||
|
if( !$master && in_array('master', $droitsArray) ) // si on doit enlever le droit et qu'il y est
|
||||||
|
array_splice($droitsArray, array_search('master', $droitsArray), 1 ); // => on enleve 'master'
|
||||||
|
|
||||||
|
$droitsString = implode(',', $droitsArray);
|
||||||
|
|
||||||
|
|
||||||
|
/* [3] On modifie les droits dans la BDD
|
||||||
|
=========================================================*/
|
||||||
|
$modifierAdmin = DataBase::getPDO()->prepare("UPDATE utilisateur SET droits = :droits WHERE identifiant = :identifiant");
|
||||||
|
$modifierAdmin->execute(array( ':droits' => $droitsString, ':identifiant' => $utilisateur ));
|
||||||
|
|
||||||
|
|
||||||
|
/* [4] On vérifie que les changements on bien pris effet
|
||||||
|
=========================================================*/
|
||||||
|
if( !($utilisateurInfoVerif=userRepo::info($utilisateur)) ) return false;
|
||||||
|
|
||||||
|
return $utilisateurInfoVerif['droits'] == $droitsString; // si les droits de la BDD sont les mêmes que ceux calculés, c'est que c'est ok
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ajoute un module qu'un utilisateur peut corriger
|
||||||
|
*
|
||||||
|
* @utilisateur<String> l'UID de l'utilisateur en question
|
||||||
|
* @module<int> l'UID du module à ajouter
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @return added<Boolean> VRAI si module ajouté, sinon FALSE
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public function addModule($utilisateur, $module){
|
||||||
|
/* [1] On vérifie s'il n'enseigne pas déjà pour ce module
|
||||||
|
==============================================================*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -106,6 +106,72 @@ require_once __ROOT__.'/manager/database.php';
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
/************************************/
|
||||||
|
/* modifie le rôle d'un utilisateur */
|
||||||
|
/************************************/
|
||||||
|
/*
|
||||||
|
* identifiant<String> l'UID de l'utilisateur à modifier
|
||||||
|
*
|
||||||
|
* admin<Boolean> VRAI si admin, FAUX sinon
|
||||||
|
* admin<NULL> Si NULL, on ne modifie pas ce champ
|
||||||
|
*
|
||||||
|
* master<Boolean> VRAI si référent, FAUX sinon
|
||||||
|
* master<NULL> Si NULL, on ne modifie pas ce champ
|
||||||
|
*
|
||||||
|
* addModule<int> l'UID du module à lui ajouter en tant que correcteur
|
||||||
|
* addModule<NULL> Si NULL, on n'ajoute aucun module
|
||||||
|
*
|
||||||
|
* delModule<int> l'UID du module à enlever en tant que correcteur
|
||||||
|
* delModule<NULL> Si NULL, on n'enlève aucun module
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
case 'updateRole': if( permission('admin') ){
|
||||||
|
|
||||||
|
$identifiantCheck = isset($request->identifiant) && is_string($request->identifiant) && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant au bon format
|
||||||
|
$adminCheck = $identifiantCheck && ( is_null($request->admin) || is_bool($request->admin) ); // admin ok
|
||||||
|
$masterCheck = $adminCheck && ( is_null($request->master) || is_bool($request->master) ); // master ok
|
||||||
|
$addModuleCheck = $masterCheck && ( is_null($request->addModule) || is_numeric($request->addModule) ); // addModule ok
|
||||||
|
$delModuleCheck = $addModuleCheck && ( is_null($request->delModule) || is_numeric($request->delModule) ); // delModule ok
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if( $delModuleCheck ){
|
||||||
|
|
||||||
|
$response = 'unknown_update';
|
||||||
|
|
||||||
|
/* [1] On modifie le caractère "administrateur"
|
||||||
|
======================================================*/
|
||||||
|
if( is_bool($request->admin) )
|
||||||
|
$response = DataBase::getInstance()->setAdmin($request->identifiant, $request->admin);
|
||||||
|
|
||||||
|
/* [2] On modifie le caractère "référent"
|
||||||
|
======================================================*/
|
||||||
|
if( is_bool($request->master) )
|
||||||
|
$response = DataBase::getInstance()->setMaster($request->identifiant, $request->master);
|
||||||
|
|
||||||
|
/* [3] On ajoute un module en tant que correcteur
|
||||||
|
======================================================*/
|
||||||
|
if( $request->addModule != null )
|
||||||
|
$response = DataBase::getInstance()->correcteurAjouterModule($request->identifiant, $request->addModule);
|
||||||
|
|
||||||
|
/* [4] On supprime un module en tant que correcteur
|
||||||
|
======================================================*/
|
||||||
|
if( $request->delModule != null )
|
||||||
|
$response = DataBase::getInstance()->correcteurSupprimerModule($request->identifiant, $request->delModule);
|
||||||
|
|
||||||
|
if( is_bool($response) )
|
||||||
|
$answer->request = ($response) ? 'success' : 'error';
|
||||||
|
else
|
||||||
|
$answer->request = $response;
|
||||||
|
|
||||||
|
}else
|
||||||
|
$answer->request = 'param_error';
|
||||||
|
}else
|
||||||
|
$answer->request = 'permission_error';
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***********/
|
/***********/
|
||||||
/* DEFAULT */
|
/* DEFAULT */
|
||||||
|
|
|
@ -48,9 +48,9 @@ if( permission('admin') ){
|
||||||
|
|
||||||
// si l'utilisateur est admin
|
// si l'utilisateur est admin
|
||||||
if( in_array('admin', $user['role']) )
|
if( in_array('admin', $user['role']) )
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."admin' checked><label for='".$user['id']."admin'></label> admin</td>";
|
echo "<td><input type='checkbox' id='".$user['id']."administrateur' checked><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
||||||
else
|
else
|
||||||
echo "<td><input type='checkbox' id='".$user['id']."admin'><label for='".$user['id']."admin'></label> admin</td>";
|
echo "<td><input type='checkbox' id='".$user['id']."administrateur'><label for='".$user['id']."administrateur'></label> administrateur</td>";
|
||||||
|
|
||||||
// si l'utilisateur est référent
|
// si l'utilisateur est référent
|
||||||
if( in_array('master', $user['role']) )
|
if( in_array('master', $user['role']) )
|
||||||
|
|
18
test.php
18
test.php
|
@ -44,9 +44,23 @@ require_once __ROOT__.'/manager/security.php';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
require_once __ROOT__.'/manager/database.php';
|
|
||||||
|
|
||||||
debug();
|
debug();
|
||||||
|
require_once __ROOT__.'/manager/user.php';
|
||||||
|
|
||||||
|
$request = new stdClass(); $answer = new stdClass();
|
||||||
|
$request->level_1 = 'updateRole';
|
||||||
|
$request->identifiant = 'admin';
|
||||||
|
$request->admin = null;
|
||||||
|
$request->master = null;
|
||||||
|
$request->addModule = null;
|
||||||
|
$request->delModule = null;
|
||||||
|
|
||||||
|
user_switch_level_1($request, $answer);
|
||||||
|
|
||||||
|
var_dump( $answer );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// $_SESSION['semestre_pair'] = !$_SESSION['semestre_pair'];
|
// $_SESSION['semestre_pair'] = !$_SESSION['semestre_pair'];
|
||||||
// var_dump( $_SESSION['semestre_pair'] );
|
// var_dump( $_SESSION['semestre_pair'] );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue