API: admin@updateRole opérationnel, reste à déployer jusqu'à l'iface

This commit is contained in:
xdrm-brackets 2015-11-24 09:59:17 +01:00
parent 19632629c9
commit 1638e9d56b
6 changed files with 107 additions and 11 deletions

View File

@ -303,17 +303,35 @@ class DataBase{
/* ajoute un module qu'un utilisateur peut corriger
*
* @utilisateur<String> l'UID de l'utilisateur en question
* @module<int> l'UID du module à ajouter
* @mccmodule<int> l'UID du mcc_module à ajouter
*
*
* @return added<Boolean> VRAI si module ajouté, sinon FALSE
*
*/
public function correcteurAjouterModule($utilisateur, $module){
public function correcteurAjouterModule($utilisateur, $mccmodule){
// on vérifie l'existence de l'utilisateur
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
return userRepo::addModule($utilisateurUID, $module);
return userRepo::addModule($utilisateurUID, $mccmodule);
}
/* supprime un module qu'un utilisateur peut corriger
*
* @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à supprimer
*
*
* @return removed<Boolean> VRAI si module supprimé, sinon FALSE
*
*/
public function correcteurSupprimerModule($utilisateur, $mccmodule){
// on vérifie l'existence de l'utilisateur
if( !($utilisateurUID=userRepo::UID($utilisateur)) ) return 'unknown_user';
return userRepo::delModule($utilisateurUID, $mccmodule);
}

View File

@ -58,7 +58,7 @@ class moduleRepo extends DBAccess{
*/
public static function forStudent($UEUID, $semestre){
// on récupère les modules
$getModulesForStudent = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle
$getModulesForStudent = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle, mcc_m.id_mcc_module
FROM module as m, semestre as s, mcc_ue, mcc_module as mcc_m
WHERE mcc_ue.id_semestre = s.id_semestre
AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue
@ -87,7 +87,7 @@ class moduleRepo extends DBAccess{
public static function forTeacher($enseignant, $UEUID, $semestre){
// on récupère les modules
$getModulesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle
$getModulesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle, mcc_m.id_mcc_module
FROM module as m, mcc_module as mcc_m, mcc_ue, enseignement as ens
WHERE ens.id_mcc_module = mcc_m.id_mcc_module
AND mcc_m.id_module = m.id_module
@ -116,7 +116,7 @@ class moduleRepo extends DBAccess{
*/
public static function forYear($UEUID, $semestre){
// on récupère les modules
$getModulesForYear = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle
$getModulesForYear = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom, m.libelle, mcc_m.id_mcc_module
FROM module as m, mcc_module as mcc_m, mcc_ue, semestre as s
WHERE m.id_module = mcc_m.id_module
AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue

View File

@ -208,16 +208,91 @@ class userRepo extends DBAccess{
/* ajoute un module qu'un utilisateur peut corriger
*
* @utilisateur<String> l'UID de l'utilisateur en question
* @module<int> l'UID du module à ajouter
* @mccmodule<int> l'UID du mcc_module à ajouter
*
*
* @return added<Boolean> VRAI si module ajouté, sinon FALSE
*
*/
public function addModule($utilisateur, $module){
public static function addModule($utilisateur, $mccmodule){
/* [1] On vérifie s'il n'enseigne pas déjà pour ce module
==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement
WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule ));
/* [2] Si l'enseignement existe, on retourne "TRUE"
==============================================================*/
if( $enseignementExiste->fetch() ) return true;
/* [3] Si l'enseignement n'existe, on le créé
==============================================================*/
$creerEnseignement = DataBase::getPDO()->prepare("INSERT INTO enseignement(id_enseignement, id_enseignant, id_mcc_module, correcteur)
VALUES(DEFAULT, :utilisateur, :mccmodule, 1)");
$creerEnseignement->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule ));
/* [4] On vérifie que l'enseignement a été créé
==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement
WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule ));
return is_array($enseignementExiste->fetch());
}
/* supprime un module qu'un utilisateur peut corriger
*
* @utilisateur<String> l'UID de l'utilisateur en question
* @mccmodule<int> l'UID du mcc_module à supprimer
*
*
* @return removed<Boolean> VRAI si module supprimé, sinon FALSE
*
*/
public static function delModule($utilisateur, $mccmodule){debug();
/* [1] On vérifie s'il n'enseigne pas déjà pour ce module
==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement
WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule ));
/* [2] Si l'enseignement n'existe pas, on returne "TRUE
==============================================================*/
if( !($enseignementUID=$enseignementExiste->fetch()['id']) ) return true;
/* [3] Si l'enseignement existe, on le supprime
==============================================================*/
$supprimerEnseignement = DataBase::getPDO()->prepare("DELETE FROM enseignement WHERE id_enseignement = :enseignementUID");
$supprimerEnseignement->execute(array( ':enseignementUID' => $enseignementUID ));
/* [4] On vérifie que l'enseignement a été supprimé
==============================================================*/
$enseignementExiste = DataBase::getPDO()->prepare("SELECT id_enseignement as id
FROM enseignement
WHERE id_enseignant = :utilisateur
AND id_mcc_module = :mccmodule");
$enseignementExiste->execute(array( ':utilisateur' => $utilisateur, ':mccmodule' => $mccmodule ));
return !is_array($enseignementExiste->fetch());
}

View File

@ -115,13 +115,14 @@ require_once __ROOT__.'/manager/database.php';
* 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<int> l'UID du mcc_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<int> l'UID du mcc_module à enlever en tant que correcteur
* delModule<NULL> Si NULL, on n'enlève aucun module
*
*/

View File

@ -72,6 +72,8 @@ if( permission('admin') ){
foreach($user['semestreList'] as $semestre){
foreach($semestre['UElist'] as $ue){
foreach($ue['modules'] as $module){
var_dump($module);
array_push($userModulesUID, $module['id']);
echo "<tr>";
echo "<td data-mod='".$module['id']."'>".$module['nom']." - ".$module['libelle']."</td>";

View File

@ -53,7 +53,7 @@ $request->identifiant = 'admin';
$request->admin = null;
$request->master = null;
$request->addModule = null;
$request->delModule = null;
$request->delModule = 42;
user_switch_level_1($request, $answer);