From 1638e9d56ba4c2251da754c5cd5232ccfcebcf9d Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Tue, 24 Nov 2015 09:59:17 +0100 Subject: [PATCH] =?UTF-8?q?API:=20admin@updateRole=20op=C3=A9rationnel,=20?= =?UTF-8?q?reste=20=C3=A0=20d=C3=A9ployer=20jusqu'=C3=A0=20l'iface?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 24 +++++++++++-- manager/repo/module.php | 6 ++-- manager/repo/user.php | 79 +++++++++++++++++++++++++++++++++++++++-- manager/user.php | 5 +-- page/settings.php | 2 ++ test.php | 2 +- 6 files changed, 107 insertions(+), 11 deletions(-) diff --git a/manager/database.php b/manager/database.php index 01b1966..b6521a6 100755 --- a/manager/database.php +++ b/manager/database.php @@ -303,17 +303,35 @@ class DataBase{ /* ajoute un module qu'un utilisateur peut corriger * * @utilisateur l'UID de l'utilisateur en question - * @module l'UID du module à ajouter + * @mccmodule l'UID du mcc_module à ajouter * * * @return added 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 l'UID de l'utilisateur en question + * @mccmodule l'UID du mcc_module à supprimer + * + * + * @return removed 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); } diff --git a/manager/repo/module.php b/manager/repo/module.php index 379a403..da69520 100755 --- a/manager/repo/module.php +++ b/manager/repo/module.php @@ -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 diff --git a/manager/repo/user.php b/manager/repo/user.php index 4ea19a3..5037ef2 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -208,16 +208,91 @@ class userRepo extends DBAccess{ /* ajoute un module qu'un utilisateur peut corriger * * @utilisateur l'UID de l'utilisateur en question - * @module l'UID du module à ajouter + * @mccmodule l'UID du mcc_module à ajouter * * * @return added 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 l'UID de l'utilisateur en question + * @mccmodule l'UID du mcc_module à supprimer + * + * + * @return removed 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()); } diff --git a/manager/user.php b/manager/user.php index 07136c9..cc6102f 100755 --- a/manager/user.php +++ b/manager/user.php @@ -115,13 +115,14 @@ require_once __ROOT__.'/manager/database.php'; * admin VRAI si admin, FAUX sinon * admin Si NULL, on ne modifie pas ce champ * + * master VRAI si référent, FAUX sinon * master Si NULL, on ne modifie pas ce champ * - * addModule l'UID du module à lui ajouter en tant que correcteur + * addModule l'UID du mcc_module à lui ajouter en tant que correcteur * addModule Si NULL, on n'ajoute aucun module * - * delModule l'UID du module à enlever en tant que correcteur + * delModule l'UID du mcc_module à enlever en tant que correcteur * delModule Si NULL, on n'enlève aucun module * */ diff --git a/page/settings.php b/page/settings.php index d36148f..4d44600 100755 --- a/page/settings.php +++ b/page/settings.php @@ -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 ""; echo "".$module['nom']." - ".$module['libelle'].""; diff --git a/test.php b/test.php index 7b52452..52d6b7a 100755 --- a/test.php +++ b/test.php @@ -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);