Correction accès => enseignant ne peut pas visualiser les contrôles auquels il n'est pas correcteur

This commit is contained in:
xdrm-brackets 2015-11-19 08:58:15 +01:00
parent 0cc2d1a013
commit 9613b75337
5 changed files with 52 additions and 18 deletions

View File

@ -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']);

View File

@ -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';

View File

@ -14,24 +14,56 @@ class controleRepo extends DBAccess{
*
* @controleUID<int> l'UID du controle duquel on veut les infos
*
* @enseignant<String> ***OPTIONNEL*** l'UID de l'ensseignant
*
*
* @return controle<Array> 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();

View File

@ -129,7 +129,7 @@
* @return toutOK<Boolean> 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;
}

View File

@ -449,7 +449,9 @@ elseif( permission('teacher') ){ // si enseignant et qu'un contrôle est spécif
echo '</tbody></table>';
}
}else
echo "<section name='controlesenseignants' data-title='Contrôles' class='basic'><table class=basic><tbody><tr><td>Aucun contrôle trouvé</td></tr></tbody></table></section>";
}