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 ***/
/******************************************************************/
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() );
}
}
?>

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

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
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

View File

@ -81,7 +81,6 @@ class moduleRepo extends DBAccess{
/* CREE UN NOUVEAU MODULE DANS LA BASE DE DONNES
*
* @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é
*
* @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
* @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 FALSE<Boolean> 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 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 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

View File

@ -53,6 +53,8 @@
ini_set('display_startup_errors',1);
error_reporting(-1);
}
debug();
@ -191,4 +193,5 @@
return $checker;
}
?>
?>

View File

@ -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<String> 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<Boolean> VRAI si pair, sinon FAUX (impair)
* @$answer->request = isEven<Boolean> 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;
}
?>

View File

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