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 public function getNotesEnseignant($enseignant, $semestre_pair, $annee, $controle, $groupe=null){ // [OPTIONNEL] $groupe
// on récupère les informations du contrôle // 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 // on ajoute la moyenne au contrôle
$controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']); $controlObj['moyenne'] = noteRepo::moyenneForControle($controlObj['id']);

View File

@ -14,24 +14,56 @@ class controleRepo extends DBAccess{
* *
* @controleUID<int> l'UID du controle duquel on veut les infos * @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 * @return controle<Array> tableau associatif contenant tout les champs de la BDD pour ce controle
* *
*/ */
public static function info($controleUID){ public static function info($controleUID, $enseignant=null){
// on considère que le semestre existe if( $enseignant == null ){
$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 /* [1] On cherche juste le contrôle avec l'id spécifié
============================================================*/
GROUP BY ctrl.id_controle"); $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
$getControleInfo->execute(array( FROM controle as ctrl, mcc_module as mcc_m, mcc_ue, semestre as s, module as m
':controleUID' => $controleUID 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 // on retourne le résultat en supprimant les doublons à indices numériques
return $getControleInfo->fetch(); return $getControleInfo->fetch();

View File

@ -129,7 +129,7 @@
* @return toutOK<Boolean> VRAI si variables bonnes / FAUX sinon * @return toutOK<Boolean> VRAI si variables bonnes / FAUX sinon
* *
*/ */
function checkParam($variable, $type){ function checkParam($variable, $type=null){
$checker = isset($variable); $checker = isset($variable);
// traitement en fonction du type // traitement en fonction du type
@ -154,7 +154,7 @@
break; 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>'; 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>";
} }