diff --git a/manager/database.php b/manager/database.php index ec730ff..502160b 100755 --- a/manager/database.php +++ b/manager/database.php @@ -241,8 +241,6 @@ class DataBase{ /*** retourne la liste des utilisateurs des groupes d'une année ***/ /******************************************************************/ public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre, $pGroupe){ - $semestre_pair = ($semestre_pair) ? '0' : '1'; - // définition des paramètres optionnels $semestreDeb = 1; $semestreFin = 4; if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) @@ -275,7 +273,7 @@ class DataBase{ $getGroupesUID->execute(array( ':semestreDeb' => $semestreDeb, ':semestreFin' => $semestreFin, - ':semestre_pair' => $semestre_pair, + ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee )); @@ -301,8 +299,6 @@ class DataBase{ /*** retourne la liste des utilisateurs des groupes d'une année ***/ /******************************************************************/ public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){ - $semestre_pair = ($semestre_pair) ? '0' : '1'; - // définition des paramètres optionnels $semestreDeb = 1; $semestreFin = 4; if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) @@ -352,7 +348,7 @@ class DataBase{ ':semestreDeb' => $semestreDeb, ':semestreFin' => $semestreFin, ':annee' => $annee, - ':semestre_pair' => $semestre_pair, + ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':enseignantUID' => $enseignantUID )); @@ -632,16 +628,15 @@ class DataBase{ /**************************************************/ /*** retourne les modules d'un étudiant par UEs ***/ /**************************************************/ - public function getModulesByUEByEnseignant($enseignant, $annee){ + public function getModulesByUEByEnseignant($enseignant, $semestre_pair, $annee){ // on vérifie que l'enseignant enseigne bien cette année - if( !($enseignantUID=userRepo::UID($enseignant, null, $annee)) ) return 'unknown_teacher'; + if( !($enseignantUID=userRepo::UID($enseignant, null, $annee, $semestre_pair)) ) return 'unknown_teacher'; - - $UEList = $this->getUEsEnseignant($enseignant, $annee); // on récupère la liste des UEs + $UEList = $this->getUEsEnseignant($enseignant, $semestre_pair, $annee); // on récupère la liste des UEs foreach($UEList as $iter=>$UE){ - // si on a l'UID utilisateur & l'UID groupe => on récupère les modules + // si on a l'UID enseignant & l'UE => on récupère les modules $getModuleList = DataBase::getPDO()->prepare("SELECT DISTINCT m.id_module as id, m.nom as nom, m.libelle as libelle ". "FROM enseignement as ens, semestre as s, ue, module as m, mcc_ue, mcc_module as mcc_m ". "WHERE ens.id_mcc_module = mcc_m.id_mcc_module ". @@ -652,11 +647,13 @@ class DataBase{ "AND ens.id_enseignant = :enseignantUID ". "AND ue.id_ue = :UEUID ". "AND s.annee = :annee ". + "AND s.rang % 2 = :semestre_pair ". "ORDER BY m.nom, m.libelle ASC"); $getModuleList->execute(array( ':enseignantUID' => $enseignantUID, ':UEUID' => $UE['id'], - ':annee' => $annee + ':annee' => $annee, + ':semestre_pair' => ($semestre_pair) ? '0' : '1' )); // on ajoute la liste des modules en supprimant les valeurs à indinces numériques @@ -670,30 +667,13 @@ class DataBase{ /****************************************/ /*** retourne les UEs d'un enseignant ***/ /****************************************/ - public function getUEsEnseignant($enseignant, $annee){ + public function getUEsEnseignant($enseignant, $semestre_pair, $annee){ + // on vérifie que l'enseignant enseigne bien cette année - if( !($enseignantUID=userRepo::UID($enseignant, null, $annee)) ) return 'unknown_teacher'; + if( !($enseignantUID=userRepo::UID($enseignant, null, $annee, $semestre_pair)) ) return 'unknown_teacher'; - - - // si on a l'UID enseignant => on récupère les UEs - $getUEList = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee as annee, ue.nom as nom, ue.libelle as libelle ". - "FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ". - "WHERE ens.id_mcc_module = mcc_m.id_mcc_module ". - "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". - "AND mcc_ue.id_ue = ue.id_ue ". - - "AND ens.id_enseignant = :enseignantUID ". - "AND s.annee = :annee ". - - "ORDER BY ue.nom, ue.libelle ASC"); - $getUEList->execute(array( - ':enseignantUID' => $enseignantUID, - ':annee' => $annee - )); - - // on retourne la liste d'UEs en supprimant les doublons à clés numériques - return DataBase::delNumeric( $getUEList->fetchAll() ); + // on retourne la liste des UEs en supprimant les doublons à indices numériques + return ueRepo::forTeacher($enseignantUID, $annee); } @@ -911,14 +891,6 @@ class DataBase{ return DataBase::delNumeric( $getNoteList->fetchAll() ); } - - - - - - - - } ?> \ No newline at end of file diff --git a/manager/groups.php b/manager/groups.php index 66ab9e2..e6ccb9e 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->answer = $userlist; + $answer->request = $userlist; }else $answer->request = 'param_error'; @@ -149,10 +149,10 @@ require_once __ROOT__.'/manager/database.php'; $answer->grouplist = $grouplist; $answer->request = 'success'; }else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur - $answer->answer = $grouplist; + $answer->request = $grouplist; }else - return 'param_error'; + $answer->request = 'param_error'; }else $answer->request = 'permission_error'; @@ -187,10 +187,10 @@ require_once __ROOT__.'/manager/database.php'; $answer->grouplist = $grouplist; $answer->request = 'success'; }else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur - $answer->answer = $grouplist; + $answer->request = $grouplist; }else - return 'param_error'; + $answer->request = 'param_error'; }else $answer->request = 'permission_error'; @@ -227,10 +227,10 @@ require_once __ROOT__.'/manager/database.php'; $answer->grouplist = $grouplist; $answer->request = 'success'; }else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur - $answer->answer = $grouplist; + $answer->request = $grouplist; }else - return 'param_error'; + $answer->request = 'param_error'; }else $answer->request = 'permission_error'; @@ -255,7 +255,7 @@ require_once __ROOT__.'/manager/database.php'; $answer->groupe = $groupe; $answer->request = 'success'; }else // si on a pas "success", alors c'est que $groupe est un message d'erreur - $answer->answer = 'error'; + $answer->request = 'error'; }else $answer->request = 'permission_error'; @@ -275,7 +275,7 @@ require_once __ROOT__.'/manager/database.php'; if( $groupeCheck ){ // si param ok $answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']); }else - $answer->answer = 'param_error'; + $answer->request = 'param_error'; }else $answer->request = 'permission_error'; diff --git a/manager/modules.php b/manager/modules.php index cd31d76..b575a1a 100755 --- a/manager/modules.php +++ b/manager/modules.php @@ -81,7 +81,7 @@ require_once __ROOT__.'/manager/database.php'; $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons - $UEList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $request->annee); + $UEList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); // STRUCTURE // tableau d'UES contenant un tableau de MODULES diff --git a/manager/repo/module.php b/manager/repo/module.php index 44f7ba6..c5ad007 100755 --- a/manager/repo/module.php +++ b/manager/repo/module.php @@ -81,7 +81,6 @@ class moduleRepo extends DBAccess{ - /* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES * * @nom le nom du nouveau module diff --git a/manager/repo/ue.php b/manager/repo/ue.php index f6653ce..a80aded 100755 --- a/manager/repo/ue.php +++ b/manager/repo/ue.php @@ -73,6 +73,33 @@ class ueRepo extends DBAccess{ + /* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UNE ANNEE + * + * @enseignant Identifiant de l'enseignant + * @annee l'année en cours + * + * @return UEs retourne un tableau contenant les UEs de l'enseignant pour cette année + * + */ + public static function forTeacher($enseignant, $annee){ + // on récupère les modules + $getUesForTeacher = DataBase::getPDO()->prepare("SELECT DISTINCT ue.id_ue as id, s.annee as annee, ue.nom as nom, ue.libelle as libelle ". + "FROM enseignement as ens, semestre as s, ue, mcc_ue, mcc_module as mcc_m ". + "WHERE ens.id_mcc_module = mcc_m.id_mcc_module ". + "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". + "AND mcc_ue.id_ue = ue.id_ue ". + + "AND ens.id_enseignant = :enseignant ". + "AND s.annee = :annee ". + + "ORDER BY ue.nom, ue.libelle ASC"); + $getUesForTeacher->execute(array( ':enseignant' => $enseignant, ':annee' => $annee )); + + return DataBase::delNumeric( $getUesForTeacher->fetchAll() ); + } + + + diff --git a/manager/repo/user.php b/manager/repo/user.php index b7205e6..6776472 100755 --- a/manager/repo/user.php +++ b/manager/repo/user.php @@ -15,14 +15,16 @@ class userRepo extends DBAccess{ * @identifiant l'identifiant de l'utilisateur recherché * * @semestre ***OPTIONNEL*** l'UID du semestre auquel on veut vérifier que l'étudiant est inscrit + * * @annee ***OPTIONNEL*** l'année auquelle on veut vérifier si l'enseignant enseigne + * @semestre_pair ***OPTIONNEL*** détermine si le semestre est pair ou non * * @return UID si l'utilisateur est dans la BDD, retourne son UID * @return FALSE FAUX si l'utilisateur n'est pas présent dans la BDD * */ - public static function UID($identifiant, $semestre=null, $annee=null){ - if( $semestre == null && $annee == null ){ // on cherche un utilisateur avec cet identifiant + public static function UID($identifiant, $semestre=null, $annee=null, $semestre_pair=null){ + if( $semestre == null && $annee == null && $semestre_pair == null ){ // on cherche un utilisateur avec cet identifiant /* [1] Cas où on cherche juste si l'utilisateur existe =============================================================*/ @@ -40,7 +42,9 @@ class userRepo extends DBAccess{ "AND app.id_semestre = :semestre"); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre' => $semestre )); - }else{ + }elseif( $annee != null && $semestre_pair != null ){ + + $semestre_pair = ($semestre_pair) ? '0' : '1'; /* [2] Cas où on cherche si un enseignant enseigne l'année donnée ==============================================================*/ @@ -51,10 +55,12 @@ class userRepo extends DBAccess{ "AND mcc_m.id_mcc_ue = mcc_ue.id_mcc_ue ". "AND mcc_ue.id_semestre = s.id_semestre ". "AND s.annee = :annee ". + "AND s.rang % 2 = :semestre_pair ". "AND u.identifiant = :identifiant"); - $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':annee' => $annee )); + $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre_pair' => $semestre_pair, ':annee' => $annee )); - } + }else // si les paramètres sont pas bons + return false; // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur return $getUtilisateurUID->fetch()['id']; @@ -72,7 +78,7 @@ class userRepo extends DBAccess{ */ public static function info($utilisateurUID){ // on considère que le semestre existe - $getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant as id, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :utilisateurUID"); + $getUtilisateurInfo = DataBase::getPDO()->prepare("SELECT identifiant, prenom, nom, mail, droits FROM utilisateur WHERE identifiant = :utilisateurUID"); $getUtilisateurInfo->execute(array( ':utilisateurUID' => $utilisateurUID )); // on retourne le résultat en supprimant les doublons à indices numériques diff --git a/manager/security.php b/manager/security.php index 1951e45..2fa06f8 100755 --- a/manager/security.php +++ b/manager/security.php @@ -53,6 +53,8 @@ ini_set('display_startup_errors',1); error_reporting(-1); } + + debug(); @@ -191,4 +193,5 @@ return $checker; } -?> \ No newline at end of file + +?> \ No newline at end of file diff --git a/manager/user.php b/manager/user.php index a2c1ba9..8eeb282 100755 --- a/manager/user.php +++ b/manager/user.php @@ -130,7 +130,7 @@ require_once __ROOT__.'/manager/database.php'; /* [a] userlist */ function user_getUserList(){ $userlistFile = file_get_contents("src/userlist.json"); - return json_decode( $userlistFile ); + $answer->request = json_decode( $userlistFile ); } @@ -142,7 +142,7 @@ require_once __ROOT__.'/manager/database.php'; * @param password Mot de passe de l'utilisateur * * si @username est référencé et que le mot de passe associé vaut @password - * alors @return TRUE sinon FALSE + * alors @$answer->request = TRUE sinon FALSE * + mise ajout à @answer * * Les variables sessions suivantes sont définies : @@ -150,7 +150,7 @@ require_once __ROOT__.'/manager/database.php'; * - $_SESSION['userid'] * - $_SESSION['username'] * - * @return Boolean true si l'utilisateur est ok + * @$answer->request = Boolean true si l'utilisateur est ok */ function user_authentification($username, $password){ // [1] On récupère la liste d'utilisateurs (/src/userlist.json) @@ -185,16 +185,16 @@ require_once __ROOT__.'/manager/database.php'; $_SESSION['semestre'] = ''.$semestre.''; } - return 'success'; + $answer->request = 'success'; }else - return 'not_in_db'; + $answer->request = 'not_in_db'; }else - return 'wrong_password'; + $answer->request = 'wrong_password'; }else - return 'unknown_user'; + $answer->request = 'unknown_user'; } @@ -204,7 +204,7 @@ require_once __ROOT__.'/manager/database.php'; * * détermine si les semestres IMPAIRS ou PAIRS sont en cours * - * @return isEven VRAI si pair, sinon FAUX (impair) + * @$answer->request = isEven VRAI si pair, sinon FAUX (impair) * */ function semestrePair($timestamp=null){ @@ -212,7 +212,7 @@ require_once __ROOT__.'/manager/database.php'; if( $timestamp == null ) $timestamp = time(); - return Date('m', $timestamp) < 8; + $answer->request = Date('m', $timestamp) < 8; } ?> \ No newline at end of file diff --git a/test.php b/test.php index 5607cac..0e8c891 100755 --- a/test.php +++ b/test.php @@ -48,8 +48,8 @@ require_once __ROOT__.'/manager/security.php'; require_once __ROOT__.'/manager/database.php'; debug(); -var_dump( $_SESSION ); - +$_SESSION['semestre_pair'] = true; +var_dump( $_SESSION['semestre_pair'] );