level_1 ){ /************************/ /* création d'un groupe */ /************************/ case 'create': if( false && permission('admin') ){ $areSetParam = isset($request->nom) ; // l'argument existe $nomCheck = $areSetParam && checkParam($request->nom, 'groupe.nom'); // nom bon format if( $nomCheck ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->creerGroupe($request->nom); }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /*****************************************/ /* retourne les utilisateurs d'un groupe */ /*****************************************/ case 'userlist': if( permission('student') ){ $areSetParam = isset($request->etudiant) && isset($request->semestre); // les arguments existent $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // etudiant (username) 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 $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->etudiant, $request->semestre); if( is_array($userlist) ){ // si on a récupéré la liste des utilisateurs $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->request = $userlist; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /**************************************/ /* retourne le semestre d'un étudiant */ /**************************************/ case 'getSemestre': if( permission('student') ){ $areSetParam = isset($request->etudiant); // les arguments existent $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // etudiant (username) bon format if( $etudiantCheck ){ // si tout les paramètres sont bons $semestre = DataBase::getInstance()->studentCurrent($request->etudiant, $_SESSION['semestre_pair'], $_SESSION['annee']); if( is_numeric($semestre) ){ // si c'est un nombre, c'est que c'est bon $answer->request = 'success'; $answer->semestre = $semestre; }else $answer->request = $semestre; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /*******************************************************************/ /* retourne les utilisateurs de tous les groupes du semestre donné */ /*******************************************************************/ case 'grouplist': if( permission('student') || permission('master') || permission('admin') ){ $areSetParam = isset($request->semestre); // les arguments existent // $formationCheck = $areSetParam && checkParam($request->formation, 'auto_increment_id'); // formation (formation) bon format $semestreCheck = $areSetParam && checkParam($request->semestre, 'auto_increment_id'); // semestre (rang) bon format // $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $semestreCheck ){ $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesSemestre($request->semestre); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $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->request = $grouplist; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /*****************************************************************************/ /* retourne les utilisateurs de tous les groupes des modules d'un enseignant */ /*****************************************************************************/ case 'grouplistForTeacher': if( permission('teacher') || permission('admin') ){ $areSetParam = isset($request->annee) && isset($request->enseignant); // les arguments existent $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format $enseignantCheck = $anneeCheck && checkParam($request->enseignant, 'utilisateur.identifiant'); // enseignant (annee) bon format if( $enseignantCheck ){ $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $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->request = $grouplist; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /********************************************************************/ /* retourne les utilisateurs de tous les groupes d'une année donnée */ /********************************************************************/ case 'grouplistForYear': if( permission('master') || permission('teacher') || permission('admin') ){ $areSetParam = isset($request->annee); // les arguments existent $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format if( $anneeCheck ){ // $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair']); $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $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->request = $grouplist; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /****************************************************************/ /* retourne la liste des semestres/années présentes dans la BDD */ /****************************************************************/ case 'getSemestres': if( permission('master') || permission('admin') ){ $answer->yearList = DataBase::getInstance()->getListeSemestres(); $answer->request = 'success'; }else $answer->request = 'permission_error'; break; /************************************************************/ /* déplace une liste d'étudiants de leurs groupe à un autre */ /************************************************************/ case 'move_multiple': if( permission('admin') && $_SESSION['annee'] >= DataBase::getInstance()->getSemestreInfoFromTime(time())['annee'] ){ $areSetParam = isset($request->etudiants) && isset($request->groupe) && isset($request->semestre); // les arguments existent $typeOkParam = $areSetParam && is_array($request->etudiants) && is_numeric($request->groupe); // si c'est des strings $nEmptyParam = $typeOkParam && count($request->etudiants) > 0 && is_numeric($request->semestre); // d'au moins 1 caractère if( $nEmptyParam ){ // si param ok $answer->request = DataBase::getInstance()->deplacerEtudiantMultiple($request->etudiants, $request->groupe, $request->semestre); }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /******************************************/ /* la liste de TOUS les groupes de la BDD */ /******************************************/ case 'exhaustiveList': if( permission('master') || permission('admin') ){ $answer->grouplist = DataBase::getInstance()->getExhaustiveGroupList(); $answer->request = 'success'; }else $answer->request = 'permission_error'; break; /*******************************************/ /* intégration des élèves pour un semestre */ /*******************************************/ case 'addUserlist': if( permission('admin') ){ $areSetParam = isset($request->formationList) && isset($request->rang) && isset($request->annee); $typeOkParam = $areSetParam && is_numeric($request->rang) && is_numeric($request->annee); $verifiParam = $typeOkParam && $request->annee >= DataBase::getInstance()->getSemestreInfoFromTime(time())['annee']; if( $verifiParam ){ // si tout les paramètres sont bons DataBase::getInstance()->addUserlist($request->rang, $request->annee, $request->formationList); $answer->request = 'success'; }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /***********************/ /* MOTEUR DE RECHERCHE */ /***********************/ case 'search': //On vérifie qu'on a bien les mots clés if( isset($request->keywords) ){ //On explode les mots clés $keys = explode(' ', $request->keywords); //Pour chaque mot clé on lance une recherche dans la bdd foreach ($keys as $keyword){ //On cherche d'abord en fonction du nom... $answer->results = DataBase::getInstance()->searchForUsers($keyword); $answer->request = (is_bool($answer->results)) ? 'error' : 'success'; } }else $answer->request = 'error'; break; /***********/ /* DEFAULT */ /***********/ default: $answer->request = 'unknown_level_1'; break; } } } ?>