Corrections "return" dans manager/groups.php

This commit is contained in:
xdrm-brackets 2015-11-11 18:23:37 +01:00
parent 9abf0937e8
commit 5df449c6a5
9 changed files with 78 additions and 71 deletions

View File

@ -241,8 +241,6 @@ class DataBase{
/*** retourne la liste des utilisateurs des groupes d'une année ***/ /*** retourne la liste des utilisateurs des groupes d'une année ***/
/******************************************************************/ /******************************************************************/
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre, $pGroupe){ public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre, $pGroupe){
$semestre_pair = ($semestre_pair) ? '0' : '1';
// définition des paramètres optionnels // définition des paramètres optionnels
$semestreDeb = 1; $semestreFin = 4; $semestreDeb = 1; $semestreFin = 4;
if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null)
@ -275,7 +273,7 @@ class DataBase{
$getGroupesUID->execute(array( $getGroupesUID->execute(array(
':semestreDeb' => $semestreDeb, ':semestreDeb' => $semestreDeb,
':semestreFin' => $semestreFin, ':semestreFin' => $semestreFin,
':semestre_pair' => $semestre_pair, ':semestre_pair' => ($semestre_pair) ? '0' : '1',
':annee' => $annee ':annee' => $annee
)); ));
@ -301,8 +299,6 @@ class DataBase{
/*** retourne la liste des utilisateurs des groupes d'une année ***/ /*** retourne la liste des utilisateurs des groupes d'une année ***/
/******************************************************************/ /******************************************************************/
public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){ public function listeEtudiantsTousGroupesEnseignant($annee, $semestre_pair, $enseignant, $pSemestre, $pGroupe){
$semestre_pair = ($semestre_pair) ? '0' : '1';
// définition des paramètres optionnels // définition des paramètres optionnels
$semestreDeb = 1; $semestreFin = 4; $semestreDeb = 1; $semestreFin = 4;
if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null)
@ -352,7 +348,7 @@ class DataBase{
':semestreDeb' => $semestreDeb, ':semestreDeb' => $semestreDeb,
':semestreFin' => $semestreFin, ':semestreFin' => $semestreFin,
':annee' => $annee, ':annee' => $annee,
':semestre_pair' => $semestre_pair, ':semestre_pair' => ($semestre_pair) ? '0' : '1',
':enseignantUID' => $enseignantUID ':enseignantUID' => $enseignantUID
)); ));
@ -632,16 +628,15 @@ class DataBase{
/**************************************************/ /**************************************************/
/*** retourne les modules d'un étudiant par UEs ***/ /*** 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 // 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, $semestre_pair, $annee); // on récupère la liste des UEs
$UEList = $this->getUEsEnseignant($enseignant, $annee); // on récupère la liste des UEs
foreach($UEList as $iter=>$UE){ 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 ". $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 ". "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 ". "WHERE ens.id_mcc_module = mcc_m.id_mcc_module ".
@ -652,11 +647,13 @@ class DataBase{
"AND ens.id_enseignant = :enseignantUID ". "AND ens.id_enseignant = :enseignantUID ".
"AND ue.id_ue = :UEUID ". "AND ue.id_ue = :UEUID ".
"AND s.annee = :annee ". "AND s.annee = :annee ".
"AND s.rang % 2 = :semestre_pair ".
"ORDER BY m.nom, m.libelle ASC"); "ORDER BY m.nom, m.libelle ASC");
$getModuleList->execute(array( $getModuleList->execute(array(
':enseignantUID' => $enseignantUID, ':enseignantUID' => $enseignantUID,
':UEUID' => $UE['id'], ':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 // 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 ***/ /*** 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 // 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';
// on retourne la liste des UEs en supprimant les doublons à indices numériques
return ueRepo::forTeacher($enseignantUID, $annee);
// 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() );
} }
@ -911,14 +891,6 @@ class DataBase{
return DataBase::delNumeric( $getNoteList->fetchAll() ); return DataBase::delNumeric( $getNoteList->fetchAll() );
} }
} }
?> ?>

View File

@ -94,7 +94,7 @@ require_once __ROOT__.'/manager/database.php';
$answer->userlist = $userlist; $answer->userlist = $userlist;
$answer->request = 'success'; $answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $userlist est un message d'erreur }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 }else
$answer->request = 'param_error'; $answer->request = 'param_error';
@ -149,10 +149,10 @@ require_once __ROOT__.'/manager/database.php';
$answer->grouplist = $grouplist; $answer->grouplist = $grouplist;
$answer->request = 'success'; $answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur }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 }else
return 'param_error'; $answer->request = 'param_error';
}else }else
$answer->request = 'permission_error'; $answer->request = 'permission_error';
@ -187,10 +187,10 @@ require_once __ROOT__.'/manager/database.php';
$answer->grouplist = $grouplist; $answer->grouplist = $grouplist;
$answer->request = 'success'; $answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur }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 }else
return 'param_error'; $answer->request = 'param_error';
}else }else
$answer->request = 'permission_error'; $answer->request = 'permission_error';
@ -227,10 +227,10 @@ require_once __ROOT__.'/manager/database.php';
$answer->grouplist = $grouplist; $answer->grouplist = $grouplist;
$answer->request = 'success'; $answer->request = 'success';
}else // si on a pas récupéré de liste, alors c'est que $grouplist est un message d'erreur }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 }else
return 'param_error'; $answer->request = 'param_error';
}else }else
$answer->request = 'permission_error'; $answer->request = 'permission_error';
@ -255,7 +255,7 @@ require_once __ROOT__.'/manager/database.php';
$answer->groupe = $groupe; $answer->groupe = $groupe;
$answer->request = 'success'; $answer->request = 'success';
}else // si on a pas "success", alors c'est que $groupe est un message d'erreur }else // si on a pas "success", alors c'est que $groupe est un message d'erreur
$answer->answer = 'error'; $answer->request = 'error';
}else }else
$answer->request = 'permission_error'; $answer->request = 'permission_error';
@ -275,7 +275,7 @@ require_once __ROOT__.'/manager/database.php';
if( $groupeCheck ){ // si param ok if( $groupeCheck ){ // si param ok
$answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']); $answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']);
}else }else
$answer->answer = 'param_error'; $answer->request = 'param_error';
}else }else
$answer->request = 'permission_error'; $answer->request = 'permission_error';

View File

@ -81,7 +81,7 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons 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 // STRUCTURE
// tableau d'UES contenant un tableau de MODULES // tableau d'UES contenant un tableau de MODULES

View File

@ -81,7 +81,6 @@ class moduleRepo extends DBAccess{
/* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES /* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES
* *
* @nom<String> le nom du nouveau module * @nom<String> le nom du nouveau module

View File

@ -73,6 +73,33 @@ class ueRepo extends DBAccess{
/* RENVOIE LA LISTE DES UEs QU'ENSEIGNE UN ENSEIGNANT POUR UNE ANNEE
*
* @enseignant<String> Identifiant de l'enseignant
* @annee<int> l'année en cours
*
* @return UEs<Array> 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() );
}

View File

@ -15,14 +15,16 @@ class userRepo extends DBAccess{
* @identifiant<String> l'identifiant de l'utilisateur recherché * @identifiant<String> l'identifiant de l'utilisateur recherché
* *
* @semestre<int> ***OPTIONNEL*** l'UID du semestre auquel on veut vérifier que l'étudiant est inscrit * @semestre<int> ***OPTIONNEL*** l'UID du semestre auquel on veut vérifier que l'étudiant est inscrit
*
* @annee<int> ***OPTIONNEL*** l'année auquelle on veut vérifier si l'enseignant enseigne * @annee<int> ***OPTIONNEL*** l'année auquelle on veut vérifier si l'enseignant enseigne
* @semestre_pair<Boolean> ***OPTIONNEL*** détermine si le semestre est pair ou non
* *
* @return UID<String> si l'utilisateur est dans la BDD, retourne son UID * @return UID<String> si l'utilisateur est dans la BDD, retourne son UID
* @return FALSE<Boolean> FAUX si l'utilisateur n'est pas présent dans la BDD * @return FALSE<Boolean> FAUX si l'utilisateur n'est pas présent dans la BDD
* *
*/ */
public static function UID($identifiant, $semestre=null, $annee=null){ public static function UID($identifiant, $semestre=null, $annee=null, $semestre_pair=null){
if( $semestre == null && $annee == null ){ // on cherche un utilisateur avec cet identifiant if( $semestre == null && $annee == null && $semestre_pair == null ){ // on cherche un utilisateur avec cet identifiant
/* [1] Cas on cherche juste si l'utilisateur existe /* [1] Cas on cherche juste si l'utilisateur existe
=============================================================*/ =============================================================*/
@ -40,7 +42,9 @@ class userRepo extends DBAccess{
"AND app.id_semestre = :semestre"); "AND app.id_semestre = :semestre");
$getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre' => $semestre )); $getUtilisateurUID->execute(array( ':identifiant' => $identifiant, ':semestre' => $semestre ));
}else{ }elseif( $annee != null && $semestre_pair != null ){
$semestre_pair = ($semestre_pair) ? '0' : '1';
/* [2] Cas on cherche si un enseignant enseigne l'année donnée /* [2] Cas 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_m.id_mcc_ue = mcc_ue.id_mcc_ue ".
"AND mcc_ue.id_semestre = s.id_semestre ". "AND mcc_ue.id_semestre = s.id_semestre ".
"AND s.annee = :annee ". "AND s.annee = :annee ".
"AND s.rang % 2 = :semestre_pair ".
"AND u.identifiant = :identifiant"); "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 // on retourne le résultat : FAUX si aucun résultat, sinon la valeur de l'UID de l'utilisateur
return $getUtilisateurUID->fetch()['id']; return $getUtilisateurUID->fetch()['id'];
@ -72,7 +78,7 @@ class userRepo extends DBAccess{
*/ */
public static function info($utilisateurUID){ public static function info($utilisateurUID){
// on considère que le semestre existe // 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 )); $getUtilisateurInfo->execute(array( ':utilisateurUID' => $utilisateurUID ));
// on retourne le résultat en supprimant les doublons à indices numériques // on retourne le résultat en supprimant les doublons à indices numériques

View File

@ -54,6 +54,8 @@
error_reporting(-1); error_reporting(-1);
} }
debug();
/*********** AURELIEN TROU DU CUL TU TE DEMERDE ***********/ /*********** AURELIEN TROU DU CUL TU TE DEMERDE ***********/
@ -191,4 +193,5 @@
return $checker; return $checker;
} }
?> ?>

View File

@ -130,7 +130,7 @@ require_once __ROOT__.'/manager/database.php';
/* [a] userlist */ /* [a] userlist */
function user_getUserList(){ function user_getUserList(){
$userlistFile = file_get_contents("src/userlist.json"); $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<String> Mot de passe de l'utilisateur * @param password<String> Mot de passe de l'utilisateur
* *
* si @username est référencé et que le mot de passe associé vaut @password * 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 * + mise ajout à @answer
* *
* Les variables sessions suivantes sont définies : * Les variables sessions suivantes sont définies :
@ -150,7 +150,7 @@ require_once __ROOT__.'/manager/database.php';
* - $_SESSION['userid'] * - $_SESSION['userid']
* - $_SESSION['username'] * - $_SESSION['username']
* *
* @return Boolean true si l'utilisateur est ok * @$answer->request = Boolean true si l'utilisateur est ok
*/ */
function user_authentification($username, $password){ function user_authentification($username, $password){
// [1] On récupère la liste d'utilisateurs (/src/userlist.json) // [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.''; $_SESSION['semestre'] = ''.$semestre.'';
} }
return 'success'; $answer->request = 'success';
}else }else
return 'not_in_db'; $answer->request = 'not_in_db';
}else }else
return 'wrong_password'; $answer->request = 'wrong_password';
}else }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 * détermine si les semestres IMPAIRS ou PAIRS sont en cours
* *
* @return isEven<Boolean> VRAI si pair, sinon FAUX (impair) * @$answer->request = isEven<Boolean> VRAI si pair, sinon FAUX (impair)
* *
*/ */
function semestrePair($timestamp=null){ function semestrePair($timestamp=null){
@ -212,7 +212,7 @@ require_once __ROOT__.'/manager/database.php';
if( $timestamp == null ) if( $timestamp == null )
$timestamp = time(); $timestamp = time();
return Date('m', $timestamp) < 8; $answer->request = Date('m', $timestamp) < 8;
} }
?> ?>

View File

@ -48,8 +48,8 @@ require_once __ROOT__.'/manager/security.php';
require_once __ROOT__.'/manager/database.php'; require_once __ROOT__.'/manager/database.php';
debug(); debug();
var_dump( $_SESSION ); $_SESSION['semestre_pair'] = true;
var_dump( $_SESSION['semestre_pair'] );