From 9613b75337c6d8a764e1303884f9bb12741da920 Mon Sep 17 00:00:00 2001 From: xdrm-brackets Date: Thu, 19 Nov 2015 08:58:15 +0100 Subject: [PATCH] =?UTF-8?q?Correction=20acc=C3=A8s=20=3D>=20enseignant=20n?= =?UTF-8?q?e=20peut=20pas=20visualiser=20les=20contr=C3=B4les=20auquels=20?= =?UTF-8?q?il=20n'est=20pas=20correcteur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- manager/database.php | 2 +- manager/groups.php | 2 +- manager/repo/controle.php | 58 ++++++++++++++++++++++++++++++--------- manager/security.php | 4 +-- page/career.php | 4 ++- 5 files changed, 52 insertions(+), 18 deletions(-) diff --git a/manager/database.php b/manager/database.php index 88d7616..9e6522d 100755 --- a/manager/database.php +++ b/manager/database.php @@ -539,7 +539,7 @@ class DataBase{ public function getNotesEnseignant($enseignant, $semestre_pair, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe // on récupère les informations du contrôle - if( ! ($controlObj=controleRepo::info($controle)) ) return 'unknown_controle'; + if( ! ($controlObj=controleRepo::info($controle, $enseignant)) ) return 'unknown_controle'; // on ajoute la moyenne au contrôle $controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']); diff --git a/manager/groups.php b/manager/groups.php index 7c252a5..340f20d 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -94,7 +94,7 @@ require_once __ROOT__.'/manager/database.php'; $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->request = $userlist; + $answer->request = $userlist; }else $answer->request = 'param_error'; diff --git a/manager/repo/controle.php b/manager/repo/controle.php index 5bc71fc..7dd36f2 100755 --- a/manager/repo/controle.php +++ b/manager/repo/controle.php @@ -14,24 +14,56 @@ class controleRepo extends DBAccess{ * * @controleUID l'UID du controle duquel on veut les infos * + * @enseignant ***OPTIONNEL*** l'UID de l'ensseignant + * + * * @return controle tableau associatif contenant tout les champs de la BDD pour ce controle * */ - public static function info($controleUID){ - // on considère que le semestre existe - $getControleInfo = DataBase::getPDO()->prepare("SELECT ctrl.id_controle as id, ctrl.id_mcc_module, m.nom as module, m.libelle as modulelib, s.id_semestre, ctrl.intitule, ctrl.base, ctrl.coefficient, ctrl.date_publication - FROM controle as ctrl, mcc_module as mcc_m, mcc_ue, semestre as s, module as m - WHERE ctrl.id_mcc_module = mcc_m.id_mcc_module - AND mcc_m.id_module = m.id_module - AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue - AND mcc_ue.id_semestre = s.id_semestre + public static function info($controleUID, $enseignant=null){ + if( $enseignant == null ){ - AND ctrl.id_controle = :controleUID + /* [1] On cherche juste le contrôle avec l'id spécifié + ============================================================*/ - GROUP BY ctrl.id_controle"); - $getControleInfo->execute(array( - ':controleUID' => $controleUID - )); + $getControleInfo = DataBase::getPDO()->prepare("SELECT ctrl.id_controle as id, ctrl.id_mcc_module, m.nom as module, m.libelle as modulelib, s.id_semestre, ctrl.intitule, ctrl.base, ctrl.coefficient, ctrl.date_publication + FROM controle as ctrl, mcc_module as mcc_m, mcc_ue, semestre as s, module as m + WHERE ctrl.id_mcc_module = mcc_m.id_mcc_module + AND mcc_m.id_module = m.id_module + AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue + AND mcc_ue.id_semestre = s.id_semestre + + AND ctrl.id_controle = :controleUID + + GROUP BY ctrl.id_controle"); + $getControleInfo->execute(array( + ':controleUID' => $controleUID + )); + + }else{ // cas où on cherche un contrôle qu'un enseignant corrige + + /* [2] On cherche le contrôle avec l'id spécifié qu'enseignant l'@enseignant + ==============================================================================*/ + $getControleInfo = DataBase::getPDO()->prepare("SELECT ctrl.id_controle as id, ctrl.id_mcc_module, m.nom as module, m.libelle as modulelib, s.id_semestre, ctrl.intitule, ctrl.base, ctrl.coefficient, ctrl.date_publication + FROM controle as ctrl, mcc_module as mcc_m, mcc_ue, semestre as s, module as m, enseignement as ens + WHERE ctrl.id_mcc_module = mcc_m.id_mcc_module + AND mcc_m.id_module = m.id_module + AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue + AND mcc_ue.id_semestre = s.id_semestre + AND ens.id_mcc_module = mcc_m.id_mcc_module + AND ens.correcteur = 1 + AND ens.id_enseignant = :enseignant + + AND ctrl.id_controle = :controleUID + + GROUP BY ctrl.id_controle"); + $getControleInfo->execute(array( + ':enseignant' => $enseignant, + ':controleUID' => $controleUID + )); + + + } // on retourne le résultat en supprimant les doublons à indices numériques return $getControleInfo->fetch(); diff --git a/manager/security.php b/manager/security.php index 0c3ed6e..c1da7ee 100755 --- a/manager/security.php +++ b/manager/security.php @@ -129,7 +129,7 @@ * @return toutOK VRAI si variables bonnes / FAUX sinon * */ - function checkParam($variable, $type){ + function checkParam($variable, $type=null){ $checker = isset($variable); // traitement en fonction du type @@ -154,7 +154,7 @@ break; } - return false; + return $checker; } diff --git a/page/career.php b/page/career.php index eab04cb..9dcba67 100755 --- a/page/career.php +++ b/page/career.php @@ -449,7 +449,9 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif echo ''; - } + }else + echo "
Aucun contrôle trouvé
"; + }