Implémentation des conditions du checkParam(); et déploiement débuté

This commit is contained in:
xdrm-brackets 2015-12-30 17:02:17 +01:00
parent 61a2daa43d
commit 594615fe90
5 changed files with 127 additions and 47 deletions

View File

@ -38,7 +38,7 @@ class DataBase{
/* retourne une instance de la classe */ /* retourne une instance de la classe */
public static function getInstance(){ public static function getInstance(){
if( DataBase::$instance == null ){ if( DataBase::$instance == null ){
if( $_SERVER['HTTP_HOST'] == 'sid.local' ) // si co en local if( $_SERVER['HTTP_HOST'] == 'sid' ) // si co en local
DataBase::$instance = new DataBase("localhost", "sid2", "php", "Qt358nUdyeTxLDM8"); DataBase::$instance = new DataBase("localhost", "sid2", "php", "Qt358nUdyeTxLDM8");
else // si co en ligne else // si co en ligne
DataBase::$instance = new DataBase("mysql.hostinger.fr", "u712664263_sid", "u712664263_php", "Qt358nUdyeTxLDM8"); DataBase::$instance = new DataBase("mysql.hostinger.fr", "u712664263_sid", "u712664263_php", "Qt358nUdyeTxLDM8");

View File

@ -44,11 +44,9 @@ class modulesManager{
} }
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings $etudiantCheck = $areSetParam && checkParam($request->etudiant, 'utilisateur.identifiant'); // identifiant bon format
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types $semestreCheck = $etudiantCheck && checkParam($request->semestre, 'semestre.rang'); // semestre (rang) bon format
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format $anneeCheck = $semestreCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) 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
if( $anneeCheck ){ // si tout les paramètres sont bons if( $anneeCheck ){ // si tout les paramètres sont bons
@ -74,11 +72,9 @@ class modulesManager{
/**********************************************/ /**********************************************/
case 'getByEnseignant': if( permission('teacher') || permission('admin') ){ case 'getByEnseignant': if( permission('teacher') || permission('admin') ){
$areSetParam = isset($request->enseignant)&& isset($request->annee); // les arguments existent $areSetParam = isset($request->enseignant)&& isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->enseignant) && is_string($request->annee); // si c'est des strings $enseignantCheck = $areSetParam && checkParam($request->enseignant, 'utilisateur.identifiant'); // nom bon format
$nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->annee); // des bon types $anneeCheck = $enseignantCheck && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format
$enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // nom bon format
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons if( $anneeCheck ){ // si tout les paramètres sont bons
$semestreList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee); $semestreList = DataBase::getInstance()->getModulesByUEByEnseignant($request->enseignant, $_SESSION['semestre_pair'], $request->annee);
@ -105,10 +101,8 @@ class modulesManager{
/******************************************/ /******************************************/
case 'getByYear': if( permission('master') || permission('admin') ){ case 'getByYear': if( permission('master') || permission('admin') ){
$areSetParam = isset($request->annee); // les arguments existent $areSetParam = isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->annee); // si c'est des strings $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format
$nEmptyParam = $typeOkParam && is_numeric($request->annee); // des bon types
$anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons if( $anneeCheck ){ // si tout les paramètres sont bons
$semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee); // true = on veut les groupes inscrits à chaque module $semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee); // true = on veut les groupes inscrits à chaque module
@ -134,10 +128,8 @@ class modulesManager{
/**********************************/ /**********************************/
case 'getMCC': if( permission('admin') ){ case 'getMCC': if( permission('admin') ){
$areSetParam = isset($request->annee); // les arguments existent $areSetParam = isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->annee); // si c'est des strings $anneeCheck = $areSetParam && checkParam($request->annee, 'semestre.annee'); // semestre (annee) bon format
$nEmptyParam = $typeOkParam && is_numeric($request->annee); // des bon types
$anneeCheck = $nEmptyParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons if( $anneeCheck ){ // si tout les paramètres sont bons
$semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee); $semestreList = DataBase::getInstance()->getModulesByUEByYear(null, $request->annee);

View File

@ -130,13 +130,108 @@
* *
*/ */
function checkParam($variable, $type=null){ function checkParam($variable, $type=null){
$checker = isset($variable); $checker = isset($variable) && !is_null($variable);
// traitement en fonction du type // traitement en fonction du type
switch($type){ switch($type){
/* [1] Types de la base de données
=======================================*/
/* (1) Global */
case 'auto_increment_id':
return $checker && is_numeric($variable) && $variable <= 2147483647 && $variable >= -2147483647;
break;
/* (2) Utilisateur */
case 'utilisateur.identifiant': case 'utilisateur.identifiant':
return $checker && is_string($variable) && preg_match('/^[\w -]{3,50}$/i', $variable); return $checker && is_string($variable) && preg_match('/^[\w -]{3,50}$/i', $variable);
break; break;
case 'utilisateur.prenom':
return $checker && is_string($variable) && preg_match('/^[a-z -]{3,50}$/i', $variable);
break;
case 'utilisateur.nom':
return $checker && is_string($variable) && preg_match('/^[a-z -]{3,50}$/i', $variable);
break;
case 'utilisateur.sexe':
return $checker && is_numeric($variable) && $variable >= 0 && $variable <= 1;
break;
case 'utilisateur.mail':
return $checker && is_string($variable) && strlen($variable) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $variable);
break;
case 'utilisateur.mdp':
return $checker && is_string($variable) && preg_match('/^[\w -]{4,100}$/i', $variable);
break;
case 'utilisateur.droits':
return $checker && is_string($variable) && preg_match('/^(?:master|student|admin|teacher)(,(?:master|student|admin|teacher)){0,4}$/i', $variable);
break;
/* (3) Groupe */
case 'groupe.nom':
return $checker && is_string($variable) && preg_match('/^[a-z0-9 -]{1,10}$/i', $variable);
break;
/* (4) Formation */
case 'formation.code':
return $checker && is_string($variable) && preg_match('/[\w]{0,10}/i', $variable);
break;
case 'formation.nom':
return $checker && is_string($variable) && preg_match('/[\w ]{0,100}/i', $variable);
break;
/* (5) Module */
case 'module.nom':
return $checker && is_string($variable) && preg_match('/[\w]{0,10}/i', $variable);
break;
case 'module.libelle':
return $checker && is_string($variable) && preg_match('/[\w ]{0,100}/i', $variable);
break;
/* (6) UE */
case 'UE.nom':
return $checker && is_string($variable) && preg_match('/[\w]{0,10}/i', $variable);
break;
case 'UE.libelle':
return $checker && is_string($variable) && preg_match('/[\w ]{0,100}/i', $variable);
break;
/* (7) Semestre */
case 'semestre.nom':
return $checker && is_string($variable) && preg_match('/[\w]{0,10}/i', $variable);
break;
case 'semestre.rang':
return $checker && is_numeric($variable) && $variable >= 0 && $variable <= 127;
break;
case 'semestre.annee':
return $checker && is_numeric($variable) && $variable >= 0;
break;
/* (8) Contrôle */
case 'controle.nom':
return $checker && is_string($variable) && preg_match('/[\w]{0,10}/i', $variable);
break;
case 'controle.libelle':
return $checker && is_string($variable) && preg_match('/^.{3,100}$/i', $variable);
break;
case 'controle.base':
return $checker && is_numeric($variable) && $variable >= 0;
break;
case 'controle.coefficient':
return $checker && is_numeric($variable);
break;
case 'controle.publication':
return $checker && is_numeric($variable) && $variable >= 0 && $variable <= 1;
break;
/* (9) Note */
case 'note.valeur':
return $checker && is_numeric($variable);
break;
/* [2] Types primitifs et secondaires
=======================================*/
case '<string>': case '<string>':
return $checker && is_string($variable); return $checker && is_string($variable);
break; break;

View File

@ -42,11 +42,9 @@ class userManager{
/* authentification (login) */ /* authentification (login) */
/****************************/ /****************************/
case 'authentification': case 'authentification':
$areSetParam = isset($request->identifiant) && isset($request->mdp); // les arguments existent $areSetParam = isset($request->identifiant) && isset($request->mdp); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->mdp); // ils sont tous 2 des string $identifiantCheck = $areSetParam && checkParam($request->identifiant, 'utilisateur.identifiant'); // identifiant bon format
$nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->mdp) > 0; // d'au moins 1 caractère $mdpCheck = $identifiantCheck && checkParam($request->mdp, 'utilisateur.mdp'); // mdp bon format
$identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format
$mdpCheck = $identifiantCheck && preg_match('/^[\w -]{4,100}$/i', $request->mdp); // mdp bon format
if( $mdpCheck ) // si tout les params sont ok if( $mdpCheck ) // si tout les params sont ok
$answer->request = userManager::user_authentification($request->identifiant, $request->mdp); $answer->request = userManager::user_authentification($request->identifiant, $request->mdp);
@ -76,14 +74,12 @@ class userManager{
case 'create': if( false && permission('admin') ){ case 'create': if( false && permission('admin') ){
$areSetParam = isset($request->identifiant) && isset($request->prenom) && isset($request->nom) && isset($request->mail) && isset($request->mdp) && isset($request->droits); // les arguments existent $areSetParam = isset($request->identifiant) && isset($request->prenom) && isset($request->nom) && isset($request->mail) && isset($request->mdp) && isset($request->droits); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->prenom) && is_string($request->nom) && is_string($request->mail) && is_string($request->mdp) && is_string($request->droits); // ils sont tous 2 des string $identifiantCheck = $areSetParam && checkParam($request->identifiant, 'utilisateur.identifiant'); // identifiant bon format
$nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->prenom) > 0 && is_string($request->nom) && is_string($request->mail) && is_string($request->mdp) && is_string($request->droits); // d'au moins 1 caractère $prenomCheck = $identifiantCheck && checkParam($request->prenom, 'utilisateur.prenom'); // prenom bon format
$identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format $nomCheck = $prenomCheck && checkParam($request->nom, 'utilisateur.nom'); // nom bon format
$prenomCheck = $identifiantCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format $mailCheck = $nomCheck && checkParam($request->mail, 'utilisateur.mail'); // mail bon format
$nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format $mdpCheck = $mailCheck && checkParam($request->mdp, 'utilisateur.mdp'); // mdp bon format
$mailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->mail); // mail bon format $droitsCheck = $mdpCheck && checkParam($request->droits, 'utilisateur.droits'); // droits bon format
$mdpCheck = $mailCheck && preg_match('/^[\w -]{4,100}$/i', $request->mdp); // mdp bon format
$droitsCheck = $mdpCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format
if( $droitsCheck ){ // si tout les paramètres sont bons if( $droitsCheck ){ // si tout les paramètres sont bons
$answer->request = DataBase::getInstance()->creerUtilisateur($request->identifiant, $request->prenom, $request->nom, $request->mail, $request->mdp, $request->droits); $answer->request = DataBase::getInstance()->creerUtilisateur($request->identifiant, $request->prenom, $request->nom, $request->mail, $request->mdp, $request->droits);
@ -144,11 +140,11 @@ class userManager{
*/ */
case 'updateRole': if( permission('admin') && $_SESSION['annee'] >= getCurrentYear() ){ case 'updateRole': if( permission('admin') && $_SESSION['annee'] >= getCurrentYear() ){
$identifiantCheck = isset($request->identifiant) && is_string($request->identifiant) && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant au bon format $identifiantCheck = isset($request->identifiant) && checkParam($request->identifiant, 'utilisateur.identifiant'); // identifiant au bon format
$adminCheck = $identifiantCheck && ( is_null($request->admin) || is_bool($request->admin) ); // admin ok $adminCheck = $identifiantCheck && ( is_null($request->admin) || is_bool($request->admin) ); // admin ok
$masterCheck = $adminCheck && ( is_null($request->master) || is_bool($request->master) ); // master ok $masterCheck = $adminCheck && ( is_null($request->master) || is_bool($request->master) ); // master ok
$addModuleCheck = $masterCheck && ( is_null($request->addModule) || is_numeric($request->addModule) ); // addModule ok $addModuleCheck = $masterCheck && ( is_null($request->addModule) || is_numeric($request->addModule) ); // addModule ok
$delModuleCheck = $addModuleCheck && ( is_null($request->delModule) || is_numeric($request->delModule) ); // delModule ok $delModuleCheck = $addModuleCheck && ( is_null($request->delModule) || is_numeric($request->delModule) ); // delModule ok
$groupeOpt = isset($request->groupe) && is_numeric($request->groupe); $groupeOpt = isset($request->groupe) && is_numeric($request->groupe);
if( $groupeOpt ) $groupe = $request->groupe; if( $groupeOpt ) $groupe = $request->groupe;

View File

@ -47,13 +47,10 @@ require_once __ROOT__.'/manager/security.php';
debug(); debug();
// var_dump( $_SESSION ); // var_dump( $_SESSION );
// [1] On récupère tous les UE d'un étudiant
$uelist = DataBase::getInstance()->getUEsEtudiant('mrd1609a', 16, 2015);
var_dump( $uelist );
// require_once __ROOT__.'/manager/database.php';
// $moyenneUEetu = DataBase::getPDO()->query("SELECT * FROM utilisateur");
// var_dump( $moyenneUEetu->fetchAll() );
var_dump( DataBase::getInstance()->listeUtilisateursRole(2015) );
@ -81,7 +78,7 @@ var_dump( DataBase::getInstance()->listeUtilisateursRole(2015) );
// $_SESSION['annee'] = 2015; // $_SESSION['annee'] = 2015;
// require_once __ROOT__.'/manager/groups.php'; require_once __ROOT__.'/manager/security.php';
// $_SESSION['identifiant'] = 'modele'; // afin de lire le fichier // $_SESSION['identifiant'] = 'modele'; // afin de lire le fichier
@ -186,7 +183,7 @@ var_dump( DataBase::getInstance()->listeUtilisateursRole(2015) );
/*** RETOURNE LE SEMESTRE COURANT D'UN ETUDIANT ***/ /*** RETOURNE LE SEMESTRE COURANT D'UN ETUDIANT ***/
// require_once __ROOT__.'/manager/groups.php'; require_once __ROOT__.'/manager/security.php';
// $request = new stdClass(); // $request = new stdClass();
// $answer = new stdClass(); // $answer = new stdClass();
@ -224,7 +221,7 @@ var_dump( DataBase::getInstance()->listeUtilisateursRole(2015) );
/*** CRÉATION GROUPE ***/ /*** CRÉATION GROUPE ***/
// require_once __ROOT__.'/manager/groups.php'; require_once __ROOT__.'/manager/security.php';
// $request = new stdClass(); // $request = new stdClass();
// $answer = new stdClass(); // $answer = new stdClass();