level_1 ){ /************************/ /* création d'un groupe */ /************************/ case 'create': if( permission('admin') ){ $areSetParam = isset($request->nom) ; // l'argument existe $typeOkParam = $areSetParam && is_string($request->nom); // si c'est une string $nEmptyParam = $typeOkParam && strlen($request->nom) > 0; // d'au moins 1 caractère $nomCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->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; /***********************************/ /* ajout d'un étudiant à un groupe */ /***********************************/ case 'add': if( permission('admin') ){ $areSetParam = isset($request->etudiant) && isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format $groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format $semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $answer->request = DataBase::getInstance()->ajouterEtudiantGroupe($request->etudiant, $request->groupe, $request->semestre, $request->annee); }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /*****************************************/ /* retourne les utilisateurs d'un groupe */ /*****************************************/ case 'userlist': if( connected() ){ $areSetParam = isset($request->groupe) && isset($request->semestre) && isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_string($request->groupe) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings $nEmptyParam = $typeOkParam && strlen($request->groupe) > 0; // d'au moins 1 caractère $groupeCheck = $nEmptyParam && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format $semestreCheck = $groupeCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ // si tout les paramètres sont bons $userlist = DataBase::getInstance()->listeEtudiantsGroupe($request->groupe, $request->semestre, $request->annee); 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( connected() ){ $areSetParam = isset($request->etudiant); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant); // si c'est des strings $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // 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( connected() ){ $areSetParam = isset($request->semestre) && isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings $semestreCheck = $typeOkParam && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format if( $anneeCheck ){ $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesSemestre($request->semestre, $request->annee); 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 $typeOkParam = $areSetParam && is_numeric($request->annee) && is_string($request->enseignant); // si c'est des strings $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format // paramètres optionnels $optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre); $optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // définition (ou pas) des paramètres optionnels if( $optionalSemestre ) $semestre = $request->semestre; else $semestre = null; if( $optionalGroupe ) $groupe = $request->groupe; else $groupe = null; if( $enseignantCheck ){ $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $_SESSION['semestre_pair'], $request->enseignant, $semestre, $groupe); 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('teacher') || permission('admin') ){ $areSetParam = isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format // paramètres optionnels $optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre); $optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // définition (ou pas) des paramètres optionnels if( $optionalSemestre ) $semestre = $request->semestre; else $semestre = null; if( $optionalGroupe ) $groupe = $request->groupe; else $groupe = null; if( $anneeCheck ){ // $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $_SESSION['semestre_pair'], $semestre, $groupe); $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, null, $semestre, $groupe); 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 le nom du groupe d'un utilisateur */ /**********************************************/ case 'get': if( connected() ){ $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant) && is_numeric($request->semestre) && is_numeric($request->annee); // si c'est des strings $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0; // d'au moins 1 caractère $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format $semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $groupe = DataBase::getInstance()->getGroupeEtudiant($request->etudiant, $request->semestre, $request->annee); if( $groupe != 'error' ){ // si on a récupéré quelque chose $answer->groupe = $groupe; $answer->request = 'success'; }else // si on a pas "success", alors c'est que $groupe est un message d'erreur $answer->request = 'error'; }else $answer->request = 'permission_error'; break; /************************************************/ /* déplace un étudiant de son groupe à un autre */ /************************************************/ case 'move': if( permission('admin') ){ $areSetParam = isset($request->etudiant) && isset($request->groupe); // les arguments existent $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->groupe); // si c'est des strings $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && strlen($request->groupe) > 0; // d'au moins 1 caractère $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // etudiant (username) bon format $groupeCheck = $etudiantCheck && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); // groupe (nom) bon format if( $groupeCheck ){ // si param ok $answer->request = DataBase::getInstance()->deplacerEtudiant($request->etudiant, $request->groupe, $_SESSION['annee']); }else $answer->request = 'param_error'; }else $answer->request = 'permission_error'; break; /***********/ /* DEFAULT */ /***********/ default: $answer->request = 'unknown_level_1'; break; } } ?>