2015-12-06 19:08:28 +00:00
< ? php require_once __ROOT__ . '/manager/security.php' ;
2015-10-29 23:01:35 +00:00
/***********************************************************
* *
* MANAGER DES MODULES *
* *
************************************************************
* *
* [ 0 ] Constantes *
* [ 1 ] ROUTAGE de niveau 1 *
* *
* *
* *
* *
* *
* *
* *
* *
* *
* *
***********************************************************/
2015-12-06 19:08:28 +00:00
class careerManager {
2015-10-29 23:01:35 +00:00
/* [ 1 ] ROUTAGE DE NIVEAU 1
============================================================*/
2015-12-06 19:08:28 +00:00
public static function switch_level_1 ( $request , $answer ){
2015-10-29 23:01:35 +00:00
switch ( $request -> level_1 ){
/***************************/
/* liste des notes par UEs */
/***************************/
2015-11-29 17:26:46 +00:00
case 'getNotesEtudiant' : if ( permission ( 'student' ) || permission ( 'master' ) || permission ( 'admin' ) ){
2015-11-08 21:30:23 +00:00
2016-01-02 13:21:31 +00:00
$areSetParam = isset ( $request -> etudiant ) && isset ( $request -> semestre ); // les arguments existent
$etudiantCheck = $areSetParam && checkParam ( $request -> etudiant , 'utilisateur.identifiant' ); // nom bon format
// $formationCheck = $etudiantCheck && checkParam($request->formation, 'auto_increment_id'); // formation (formation) bon format
$semestreCheck = $etudiantCheck && checkParam ( $request -> semestre , 'auto_increment_id' ); // semestre (rang) bon format
// $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format
2015-11-08 21:30:23 +00:00
2016-01-02 13:21:31 +00:00
if ( $semestreCheck ){ // si tout les paramètres sont bons
$UEs = DataBase :: getInstance () -> getNotesEtudiant ( $request -> etudiant , $request -> semestre );
2015-11-08 21:30:23 +00:00
2015-11-29 17:26:46 +00:00
if ( is_array ( $UEs ) ){ // si on a bien un tableau
$answer -> UEs = $UEs ; // on renvoie dans answer->note
2015-11-08 21:30:23 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
2015-11-29 17:26:46 +00:00
$answer -> request = $UEs ; // on retourne l'erreur
2015-11-08 21:30:23 +00:00
} else
$answer -> request = 'param_error' ;
2015-10-29 23:01:35 +00:00
} else
2015-11-08 21:30:23 +00:00
$answer -> request = 'permission_error' ;
2015-10-29 23:01:35 +00:00
break ;
2015-11-26 17:17:05 +00:00
/***************************************/
/* liste des contrôles d'un enseignant */
/***************************************/
2015-11-13 18:07:36 +00:00
case 'getControlesEnseignant' : if ( permission ( 'teacher' ) ){
2015-12-30 16:21:10 +00:00
$areSetParam = isset ( $request -> enseignant ) && isset ( $request -> annee ); // les arguments existent
$enseignantCheck = $areSetParam && checkParam ( $request -> enseignant , 'utilisateur.identifiant' ); // nom bon format
$anneeCheck = $enseignantCheck && checkParam ( $request -> annee , 'semestre.annee' ); // semestre (annee) bon format
2015-11-13 18:07:36 +00:00
if ( $anneeCheck ){ // si tout les paramètres sont bons
2015-11-16 12:28:24 +00:00
$semestreList = DataBase :: getInstance () -> getControlesEnseignant ( $request -> enseignant , $_SESSION [ 'semestre_pair' ], $request -> annee );
2015-11-13 18:07:36 +00:00
2015-11-16 12:28:24 +00:00
if ( is_array ( $semestreList ) ){ // si on a bien un tableau
$answer -> semestres = $semestreList ; // on renvoie dans answer->semestreList
2015-11-13 18:07:36 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
2015-11-16 12:28:24 +00:00
$answer -> request = $semestreList ; // on retourne l'erreur
2015-11-13 18:07:36 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-26 17:17:05 +00:00
/**********************************/
/* liste des contrôles de l'année */
/**********************************/
case 'getControlesForYear' : if ( permission ( 'master' ) || permission ( 'admin' ) ){
2015-12-30 16:21:10 +00:00
$areSetParam = isset ( $request -> annee ); // les arguments existent
$anneeCheck = $areSetParam && checkParam ( $request -> annee , 'semestre.annee' ); // semestre (annee) bon format
2015-11-26 17:17:05 +00:00
if ( $anneeCheck ){ // si tout les paramètres sont bons
$semestreList = DataBase :: getInstance () -> getControlesForYear ( $request -> annee );
if ( is_array ( $semestreList ) ){ // si on a bien un tableau
$answer -> semestres = $semestreList ; // on renvoie dans answer->semestreList
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $semestreList ; // on retourne l'erreur
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
/****************************************************/
/* liste des notes pour un contrôle d'un enseignant */
/****************************************************/
2015-11-14 17:33:06 +00:00
case 'getNotesEnseignant' : if ( permission ( 'teacher' ) ){
2015-12-30 16:21:10 +00:00
$areSetParam = isset ( $request -> enseignant ) && isset ( $request -> controle ); // les arguments existent
$enseignantCheck = $areSetParam && checkParam ( $request -> enseignant , 'utilisateur.identifiant' ); // nom bon format
2015-11-14 17:33:06 +00:00
// paramètre optionnel
2015-11-30 18:32:05 +00:00
$optionalGroupe = isset ( $request -> groupe ) && is_numeric ( $request -> groupe );
2015-11-15 12:02:34 +00:00
// définition (ou pas) du paramètre optionnel
if ( $optionalGroupe ) $groupe = $request -> groupe ;
else $groupe = null ;
if ( $enseignantCheck ){ // si tout les paramètres sont bons
2015-11-26 18:06:27 +00:00
$controle = DataBase :: getInstance () -> getNotesForControleEnseignant ( $request -> enseignant , $_SESSION [ 'annee' ], $request -> controle , $groupe );
2015-11-15 12:02:34 +00:00
2015-11-26 17:17:05 +00:00
if ( is_array ( $controle ) ){ // si on a bien un tableau
$answer -> controle = $controle ; // on renvoie dans answer->controle
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $controle ; // on retourne l'erreur
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
/************************************/
/* liste des notes pour un contrôle */
/************************************/
case 'getNotesForYear' : if ( permission ( 'master' ) || permission ( 'admin' ) ){
2015-12-30 16:21:10 +00:00
$areSetParam = isset ( $request -> controle ); // les arguments existent
$controleCheck = $areSetParam && checkParam ( $request -> controle , 'auto_increment_id' ); // des bon types
2015-11-26 17:17:05 +00:00
// paramètre optionnel
2015-12-30 16:21:10 +00:00
$optionalGroupe = isset ( $request -> groupe ) && checkParam ( $request -> groupe , 'auto_increment_id' );
2015-11-26 17:17:05 +00:00
// définition (ou pas) du paramètre optionnel
if ( $optionalGroupe ) $groupe = $request -> groupe ;
else $groupe = null ;
2015-11-30 18:32:05 +00:00
2015-12-30 16:21:10 +00:00
if ( $controleCheck ){ // si tout les paramètres sont bons
2015-11-26 18:06:27 +00:00
$controle = DataBase :: getInstance () -> getNotesForControle ( $_SESSION [ 'annee' ], $request -> controle , $groupe );
2015-11-26 17:17:05 +00:00
2015-11-26 19:37:41 +00:00
if ( is_array ( $controle ) ){ // si on a bien un tableau
2015-11-15 12:02:34 +00:00
$answer -> controle = $controle ; // on renvoie dans answer->controle
2015-11-26 19:37:41 +00:00
$answer -> request = 'success' ; // et on renvoie success
} else // sinon si c'est pas un tableau
$answer -> request = $controle ; // on retourne l'erreur
2015-11-15 12:02:34 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 17:12:49 +00:00
/**********************************************/
/* informations relatives au dossier étudiant */
/**********************************************/
2015-11-29 22:29:54 +00:00
case 'studentcase' : if ( permission ( 'master' ) || permission ( 'admin' ) ){
2015-11-15 17:12:49 +00:00
2015-12-30 16:21:10 +00:00
$areSetParam = isset ( $request -> etudiant ); // les arguments existent
$etudiantCheck = $areSetParam && checkParam ( $request -> etudiant , 'utilisateur.identifiant' ); // nom bon format
2015-11-15 17:12:49 +00:00
if ( $etudiantCheck ){ // si tout les paramètres sont bons
2015-11-29 22:29:54 +00:00
$parcours = DataBase :: getInstance () -> getParcoursEtudiant ( $request -> etudiant );
if ( is_array ( $parcours ) ){
$answer -> parcours = $parcours ;
$answer -> request = 'success' ;
} else
$answer -> request = $parcours ;
2015-11-15 17:12:49 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 12:02:34 +00:00
/****************************************************/
/* saisie d'une note pour un étudiant à un contrôle */
/****************************************************/
2015-11-30 20:46:40 +00:00
case 'saisieNote' : if ( ( permission ( 'teacher' ) || permission ( 'admin' )) && $_SESSION [ 'annee' ] >= getCurrentYear () ){
2015-11-15 12:02:34 +00:00
2015-11-15 14:12:26 +00:00
$areSetParam = isset ( $request -> etudiant ) && isset ( $request -> controle ) && isset ( $request -> note ); // les arguments existent
2015-12-30 16:21:10 +00:00
$etudiantCheck = $areSetParam && checkParam ( $request -> etudiant , 'utilisateur.identifiant' ); // nom bon format
2015-11-14 17:33:06 +00:00
2015-11-15 14:12:26 +00:00
if ( $etudiantCheck ){ // si tout les paramètres sont bons
$answer -> request = DataBase :: getInstance () -> saisieNote ( $request -> etudiant , $request -> controle , $request -> note );
2015-11-14 17:33:06 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 17:12:49 +00:00
/****************************************************/
/* saisie d'une note pour un groupe à un contrôle */
/****************************************************/
2015-11-30 20:46:40 +00:00
case 'saisieNoteMultiple' : if ( ( permission ( 'teacher' ) || permission ( 'admin' )) && $_SESSION [ 'annee' ] >= getCurrentYear () ){
2015-11-15 17:12:49 +00:00
2015-11-22 16:23:01 +00:00
$areSetParam = isset ( $request -> notes ) && isset ( $request -> controle ); // les arguments existent
$typeOkParam = $areSetParam && is_array ( $request -> notes ) && is_numeric ( $request -> controle ); // si c'est des strings
2015-12-30 16:21:10 +00:00
$nEmptyParam = $typeOkParam && count ( $request -> notes ) > 0 ; // des bon types
2015-11-15 17:12:49 +00:00
2015-11-22 15:34:07 +00:00
if ( $nEmptyParam ){ // si tout les paramètres sont bons
2015-11-22 16:23:01 +00:00
$answer -> request = DataBase :: getInstance () -> saisieNoteMultiple ( $request -> controle , $request -> notes );
2015-11-15 17:12:49 +00:00
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-12-01 18:01:05 +00:00
/*********************************************************/
/* définie le caractère "publié" des notes d'un contrôle */
/*********************************************************/
case 'publicationcontrole' : if ( permission ( 'admin' ) && $_SESSION [ 'annee' ] >= getCurrentYear () ){
$areSetParam = isset ( $request -> controle ) && isset ( $request -> publication ); // les arguments existent
2015-12-30 16:21:10 +00:00
$typeOkParam = $areSetParam && checkParam ( $request -> controle , 'auto_increment_id' ) && is_bool ( $request -> publication ); // si les types sont bons
2015-12-01 18:01:05 +00:00
if ( $typeOkParam ){ // si tout les paramètres sont bons
if ( DataBase :: getInstance () -> publicationControle ( $request -> controle , $request -> publication ) )
$answer -> request = 'success' ;
else
$answer -> request = 'error' ;
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-15 17:12:49 +00:00
2015-11-21 17:09:03 +00:00
2016-01-02 14:55:25 +00:00
/***********************/
/* intégration des MCC */
/***********************/
2015-11-21 17:09:03 +00:00
case 'setMCC' : if ( permission ( 'admin' ) ){
if ( isset ( $request -> mcc ) && isset ( $request -> semestre ) && is_numeric ( $request -> semestre ) ){ // si tout les paramètres sont bons
DataBase :: getInstance () -> setMCC ( $request -> semestre , $request -> mcc );
$answer -> request = 'success' ;
} else
$answer -> request = 'param_error' ;
2016-01-02 14:55:25 +00:00
} else
$answer -> request = 'permission_error' ;
break ;
/*******************/
/* clonage des MCC */
/*******************/
case 'cloneMCC' : if ( permission ( 'admin' ) ){
if ( isset ( $request -> annee ) && checkParam ( $request -> annee , 'semestre.annee' ) ){ // si tout les paramètres sont bons
$answer -> request = DataBase :: getInstance () -> cloneMCC ( $request -> annee );
} else
$answer -> request = 'param_error' ;
2015-11-21 17:09:03 +00:00
} else
$answer -> request = 'permission_error' ;
break ;
2015-11-22 14:00:18 +00:00
/**************************/
/* création d'un semestre */
/**************************/
/*
* CRÉATION DU SEMESTRE D ' UNE FORMATION DONNÉE
* - si code formation non référencé => on créé la formation
* - si rang + annee + formation du semestre non référencé => on créé le semestre
* + sinon on modifie juste le nom ( même si identique )
*
*/
case 'creerSemestre' : if ( permission ( 'admin' ) ){
$areSetParam = isset ( $request -> annee ) && isset ( $request -> formation ) && isset ( $request -> nom_formation ) && isset ( $request -> semestre ) && isset ( $request -> rang ); // les arguments existent
2015-12-30 16:21:10 +00:00
$anneeCheck = $areSetParam && checkParam ( $request -> annee , 'semestre.annee' ); // l'année est au bon format
$formationCheck = $anneeCheck && checkParam ( $request -> formation , 'formation.code' ); // le code de la formation est au bon format
$nomFormationCheck = $formationCheck && checkParam ( $request -> nom_formation , 'formation.nom' ); // le nom de la formation est au bon format
$semestreCheck = $nomFormationCheck && checkParam ( $request -> semestre , 'semestre.nom' ); // le nom du semestre est au bon format
$rangCheck = $semestreCheck && checkParam ( $request -> rang , 'semestre.rang' ); // le rang est au bon format
2015-11-22 14:00:18 +00:00
if ( $rangCheck ){ // si tout les paramètres sont bons
$creationOk = DataBase :: getInstance () -> creerSemestre ( $request -> formation , $request -> nom_formation , $request -> semestre , $request -> rang , $request -> annee );
if ( $creationOk )
$answer -> request = 'success' ;
else
$answer -> request = 'error' ;
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2016-01-02 19:59:31 +00:00
2016-01-03 10:55:20 +00:00
/**************************************************/
/* Intégration des mentions jury pour un semestre */
/**************************************************/
2016-01-02 19:59:31 +00:00
/*
2016-01-03 10:55:20 +00:00
*
* @ semestre < int > UID du semestre en question
* @ jury < Array > Tableau contenant les étudiants et leurs mentions
*
2016-01-02 19:59:31 +00:00
*
*/
2016-01-03 10:55:20 +00:00
case 'applyJurySemestre' : if ( permission ( 'admin' ) ){
2016-01-02 19:59:31 +00:00
2016-01-03 10:55:20 +00:00
$areSetParam = isset ( $request -> semestre ) && isset ( $request -> jury ); // les arguments existent
$juryCheck = $areSetParam && checkParam ( $request -> jury , '<array>' ); // les mentions jury est au bon format
$semestreCheck = $juryCheck && checkParam ( $request -> semestre , 'auto_increment_id' ); // le semestre est au bon format
2016-01-02 19:59:31 +00:00
if ( $semestreCheck ){ // si tout les paramètres sont bons
2016-01-03 10:55:20 +00:00
$integration = DataBase :: getInstance () -> applyJurySemestre ( $request -> semestre , $request -> jury );
if ( $integration )
2016-01-02 19:59:31 +00:00
$answer -> request = 'success' ;
else
$answer -> request = 'error' ;
} else
$answer -> request = 'param_error' ;
} else
$answer -> request = 'permission_error' ;
break ;
2015-10-29 23:01:35 +00:00
/***********/
/* DEFAULT */
/***********/
default :
$answer -> request = 'unknown_level_1' ;
break ;
}
}
2015-12-06 19:08:28 +00:00
}
2015-10-29 23:01:35 +00:00
?>