391 lines
16 KiB
PHP
Executable File
391 lines
16 KiB
PHP
Executable File
<?php require_once __ROOT__.'/manager/security.php';
|
|
|
|
/***********************************************************
|
|
* *
|
|
* MANAGER DES MODULES *
|
|
* *
|
|
************************************************************
|
|
* *
|
|
* [0] Constantes *
|
|
* [1] ROUTAGE de niveau 1 *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
* *
|
|
***********************************************************/
|
|
|
|
|
|
|
|
|
|
|
|
class careerManager{
|
|
|
|
/* [1] ROUTAGE DE NIVEAU 1
|
|
============================================================*/
|
|
public static function switch_level_1($request, $answer){
|
|
|
|
switch( $request->level_1 ){
|
|
|
|
/***************************/
|
|
/* liste des notes par UEs */
|
|
/***************************/
|
|
case 'getNotesEtudiant': if( permission('student') || permission('master') || permission('admin') ){
|
|
|
|
$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
|
|
|
|
if( $semestreCheck ){ // si tout les paramètres sont bons
|
|
$UEs = DataBase::getInstance()->getNotesEtudiant($request->etudiant, $request->semestre);
|
|
|
|
if( is_array($UEs) ){ // si on a bien un tableau
|
|
$answer->UEs = $UEs; // on renvoie dans answer->note
|
|
$answer->request = 'success'; // et on renvoie success
|
|
}else // sinon si c'est pas un tableau
|
|
$answer->request = $UEs; // on retourne l'erreur
|
|
}else
|
|
$answer->request = 'param_error';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
break;
|
|
|
|
|
|
|
|
/***************************************/
|
|
/* liste des contrôles d'un enseignant */
|
|
/***************************************/
|
|
case 'getControlesEnseignant': if( permission('teacher') ){
|
|
|
|
$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
|
|
|
|
if( $anneeCheck ){ // si tout les paramètres sont bons
|
|
$semestreList = DataBase::getInstance()->getControlesEnseignant($request->enseignant, $_SESSION['semestre_pair'], $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 contrôles de l'année */
|
|
/**********************************/
|
|
case 'getControlesForYear': if( permission('master') || permission('admin') ){
|
|
|
|
$areSetParam = isset($request->annee); // les arguments existent
|
|
$anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format
|
|
|
|
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 */
|
|
/****************************************************/
|
|
case 'getNotesEnseignant': if( permission('teacher') ){
|
|
|
|
$areSetParam = isset($request->enseignant) && isset($request->controle); // les arguments existent
|
|
$controleCheck = $areSetParam && checkParam($request->controle, 'auto_increment_id');
|
|
$enseignantCheck = $controleCheck && checkParam($request->enseignant, 'utilisateur.identifiant'); // nom bon format
|
|
|
|
// paramètre optionnel
|
|
$optionalGroupe = isset($request->groupe) && is_numeric($request->groupe);
|
|
|
|
// 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
|
|
$controle = DataBase::getInstance()->getNotesForControleEnseignant($request->enseignant, $_SESSION['annee'], $request->controle, $groupe);
|
|
|
|
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') ){
|
|
|
|
$areSetParam = isset($request->controle); // les arguments existent
|
|
$controleCheck = $areSetParam && checkParam($request->controle, 'auto_increment_id'); // des bon types
|
|
|
|
// paramètre optionnel
|
|
$optionalGroupe = isset($request->groupe) && checkParam($request->groupe, 'auto_increment_id');
|
|
|
|
// définition (ou pas) du paramètre optionnel
|
|
if( $optionalGroupe ) $groupe = $request->groupe;
|
|
else $groupe = null;
|
|
|
|
if( $controleCheck ){ // si tout les paramètres sont bons
|
|
$controle = DataBase::getInstance()->getNotesForControle($_SESSION['annee'], $request->controle, $groupe);
|
|
|
|
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;
|
|
|
|
|
|
/**********************************************/
|
|
/* informations relatives au dossier étudiant */
|
|
/**********************************************/
|
|
case 'studentcase': if( permission('master') || permission('admin') ){
|
|
|
|
$areSetParam = isset($request->etudiant); // les arguments existent
|
|
$etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // nom bon format
|
|
|
|
if( $etudiantCheck ){ // si tout les paramètres sont bons
|
|
$parcours = DataBase::getInstance()->getParcoursEtudiant($request->etudiant);
|
|
|
|
if( is_array($parcours) ){
|
|
$answer->parcours = $parcours;
|
|
$answer->request = 'success';
|
|
}else
|
|
$answer->request = $parcours;
|
|
}else
|
|
$answer->request = 'param_error';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
|
|
break;
|
|
|
|
|
|
|
|
/****************************************************/
|
|
/* saisie d'une note pour un étudiant à un contrôle */
|
|
/****************************************************/
|
|
case 'saisieNote': if( (permission('teacher') || permission('admin')) && $_SESSION['annee'] >= DataBase::getInstance()->getSemestreInfoFromTime(time())['annee'] ){
|
|
|
|
$areSetParam = isset($request->etudiant) && isset($request->controle) && isset($request->note); // les arguments existent
|
|
$etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // nom bon format
|
|
|
|
if( $etudiantCheck ){ // si tout les paramètres sont bons
|
|
$answer->request = DataBase::getInstance()->saisieNote($request->etudiant, $request->controle, $request->note);
|
|
}else
|
|
$answer->request = 'param_error';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
break;
|
|
|
|
|
|
/****************************************************/
|
|
/* saisie d'une note pour un groupe à un contrôle */
|
|
/****************************************************/
|
|
case 'saisieNoteMultiple': if( (permission('teacher') || permission('admin')) && $_SESSION['annee'] >= DataBase::getInstance()->getSemestreInfoFromTime(time())['annee'] ){
|
|
|
|
$areSetParam = isset($request->notes) && isset($request->controle); // les arguments existent
|
|
$typeOkParam = $areSetParam && is_array($request->notes) && checkParam($request->controle, 'auto_increment_id'); // si c'est des strings
|
|
$nEmptyParam = $typeOkParam && count($request->notes) > 0; // des bon types
|
|
|
|
if( $nEmptyParam ){ // si tout les paramètres sont bons
|
|
$answer->request = DataBase::getInstance()->saisieNoteMultiple($request->controle, $request->notes);
|
|
}else
|
|
$answer->request = 'param_error';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
break;
|
|
|
|
|
|
/*********************************************************/
|
|
/* définie le caractère "publié" des notes d'un contrôle */
|
|
/*********************************************************/
|
|
case 'publicationcontrole': if( permission('admin') && $_SESSION['annee'] >= DataBase::getInstance()->getSemestreInfoFromTime(time())['annee'] ){
|
|
|
|
$areSetParam = isset($request->controle) && isset($request->publication); // les arguments existent
|
|
$typeOkParam = $areSetParam && checkParam($request->controle, 'auto_increment_id') && is_bool($request->publication); // si les types sont bons
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/***********************/
|
|
/* intégration des MCC */
|
|
/***********************/
|
|
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';
|
|
|
|
}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';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**************************/
|
|
/* 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
|
|
$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
|
|
|
|
|
|
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;
|
|
|
|
|
|
|
|
|
|
|
|
/**************************************************/
|
|
/* Intégration des mentions jury pour un semestre */
|
|
/**************************************************/
|
|
/*
|
|
*
|
|
* @semestre<int> UID du semestre en question
|
|
* @jury<Array> Tableau contenant les étudiants et leurs mentions
|
|
*
|
|
*
|
|
*/
|
|
case 'applyJurySemestre': if( permission('admin') ){
|
|
|
|
$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
|
|
|
|
|
|
if( $semestreCheck ){ // si tout les paramètres sont bons
|
|
$integration = DataBase::getInstance()->applyJurySemestre($request->semestre, $request->jury);
|
|
|
|
if( $integration )
|
|
$answer->request = 'success';
|
|
else
|
|
$answer->request = 'error';
|
|
|
|
}else
|
|
$answer->request = 'param_error';
|
|
|
|
}else
|
|
$answer->request = 'permission_error';
|
|
break;
|
|
|
|
|
|
|
|
/***********/
|
|
/* DEFAULT */
|
|
/***********/
|
|
default:
|
|
$answer->request = 'unknown_level_1';
|
|
break;
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
?>
|