security_check(); if ($resultat_session == 'c') { header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { header("Location: ../logout.php?auto=1"); die(); } // Sécurité if (!checkAccess()) { header("Location: ../logout.php?auto=2"); die(); } //debug_var(); if (getSettingValue("statuts_prives") != "y") { trigger_error('Impossible d\'accéder à ce module de Gepi.', E_USER_ERROR); } //debug_var(); // ========================================= Variables ============================ $action = isset($_POST["action"]) ? $_POST["action"] : NULL; $nouveau_statut = isset($_POST["news"]) ? $_POST["news"] : NULL; $login_user = isset($_POST["userid"]) ? $_POST["userid"] : NULL; $statut_user = isset($_POST["userstat"]) ? $_POST["userstat"] : NULL; $msg = $msg2 = $msg3 = NULL; // Ces tableaux définissent les différents fichiers à autoriser en fonction du statut $values_b = ''; // La liste des fichiers à traiter require_once('./creer_statut_autorisation.php'); //print_r($autorise); // Fonction qui permet d'afficher le selected de l'affichage function verifChecked($id){ // On utilise les variables définies dans /creer_statut_autorisation.php global $autorise; global $iter; for($i = 1 ; $i < $iter ; $i++){ // On récupère les droits de ce statut privé $sql_ds = "SELECT autorisation FROM droits_speciaux WHERE id_statut = '".$id."' AND nom_fichier = '".$autorise[$i][0]."'"; //echo "\$sql_ds=$sql_ds
"; $query_ds = mysqli_query($GLOBALS["mysqli"], $sql_ds) OR trigger_error('Erreur dans la fonction verifChecked ', E_USER_ERROR); $count = mysqli_num_rows($query_ds); //echo "\$count=$count
"; if ($count >= 1) { $rep = old_mysql_result($query_ds, 0,"autorisation"); }else{ $rep = 'F'; } // echo $sql_ds.' '.$rep.'
'; // debug if ($rep == 'V') { $retour[$i] = ' checked="checked"'; }else{ $retour[$i] = ''; } } return $retour; } if ($action == 'ajouter') { check_token(); // on fait quelques vérifications sur le nom du statut (si il existe déjà, longueur du nom, enlever les ' et les ",...) // On ne garde que les 12 premières lettres $stat_1 = mb_substr(trim($nouveau_statut), 0, 12); // On enlève les accents, les apostrophes et les guillemets $stat_2 = str_replace("\\", "", $stat_1); $stat_2b = str_replace('"', '', $stat_2); $stat_3 = remplace_accents($stat_2b, "all"); // On refait une ultime vérification $insert_statut = htmlspecialchars($stat_3, ENT_QUOTES); // On ajoute le statut privé après avoir vérifié qu'il n'existe pas déjà $query_v = mysqli_query($GLOBALS["mysqli"], "SELECT id FROM droits_statut WHERE nom_statut = '".$insert_statut."'"); $verif = mysqli_num_rows($query_v); if ($verif >= 1) { $msg .= "

Ce statut privé existe déjà !

"; } else{ $sql = "INSERT INTO droits_statut (id, nom_statut) VALUES ('', '".$insert_statut."')"; //echo "$sql
"; $enregistre = mysqli_query($GLOBALS["mysqli"], $sql) OR trigger_error('Impossible d\'enregistrer ce nouveau statut', E_USER_WARNING); $cherche_id = mysqli_query($GLOBALS["mysqli"], "SELECT id FROM droits_statut WHERE nom_statut = '".$insert_statut."'"); $last_id = old_mysql_result($cherche_id, 0,"id"); if ($enregistre) { // On enregistre les droits généraux adéquats avec la virgule qui va bien entre chaque value // Chaque droit correspond à un ensemble d'autorisations sur un ou plusieurs fichiers // Pour ajouter des droits, il suffit d'ajouter des branches au tableau $autorise du fichier creer_statut_autorisation avec tous les fichiers utiles for($a = 0 ; $a < $iter ; $a++){ // $iter est définie dans creer_statut_autorisation.php $nbre = count($autorise[$a]); // On met V pour les autorisations de base mais F pour les autres if ($a != 0) { $vf = 'F'; }else{ $vf = 'V'; } for($c = 0 ; $c < $nbre ; $c++){ $values_b .= '("", "'.$last_id.'", "'.$autorise[$a][$c].'", "'.$vf.'")'; if ($c <= ($nbre - 2)) { $values_b .= ', '; } } // On ajoute une virgule entre chaque droit sauf à la fin if ($a < ($iter - 1)) { $values_b .= ', '; } } $autorise_b = mysqli_query($GLOBALS["mysqli"], "INSERT INTO droits_speciaux (id, id_statut, nom_fichier, autorisation) VALUES ".$values_b."") OR trigger_error('Impossible d\'enregistrer : '.$values_b.' : '.mysqli_error($GLOBALS["mysqli"]), E_USER_WARNING); if ($autorise_b) { $msg .= '

Ce statut est enregistré !

'; } } } } // if ($action == 'ajouter') if ($action == 'modifier') { check_token(); // On initialise toutes les variables envoyées $sql = "SELECT id, nom_statut FROM droits_statut ORDER BY nom_statut"; //echo "$sql
"; $query = mysqli_query($GLOBALS["mysqli"], $sql) OR trigger_error('Erreur '.$sql, E_USER_ERROR); $nbre = mysqli_num_rows($query); $test=array(); for($a = 0; $a < $nbre; $a++){ $b = old_mysql_result($query, $a, "id"); //$current_statut = old_mysql_result($query, $a, "nom_statut"); //echo "
Statut n°$b : $current_statut
"; $test[$a][0] = isset($_POST["suppr|".$b]) ? $_POST["suppr|".$b] : NULL; $test[$a][1] = isset($_POST["ne|".$b]) ? $_POST["ne|".$b] : NULL; $test[$a][2] = isset($_POST["moy_cn|".$b]) ? $_POST["moy_cn|".$b] : NULL; $test[$a][3] = isset($_POST["bs|".$b]) ? $_POST["bs|".$b] : NULL; $test[$a][4] = isset($_POST["va|".$b]) ? $_POST["va|".$b] : NULL; $test[$a][5] = isset($_POST["sa|".$b]) ? $_POST["sa|".$b] : NULL; $test[$a][6] = isset($_POST["cdt|".$b]) ? $_POST["cdt|".$b] : NULL; $test[$a][7] = isset($_POST["cdt_visa|".$b]) ? $_POST["cdt_visa|".$b] : NULL; $test[$a][8] = isset($_POST["ee|".$b]) ? $_POST["ee|".$b] : NULL; $test[$a][9] = isset($_POST["te|".$b]) ? $_POST["te|".$b] : NULL; $test[$a][10] = isset($_POST["pa|".$b]) ? $_POST["pa|".$b] : NULL; $test[$a][11] = isset($_POST["ve|".$b]) ? $_POST["ve|".$b] : NULL; $test[$a][12] = isset($_POST["vre|".$b]) ? $_POST["vre|".$b] : NULL; $test[$a][13] = isset($_POST["vee|".$b]) ? $_POST["vee|".$b] : NULL; $test[$a][14] = isset($_POST["vne|".$b]) ? $_POST["vne|".$b] : NULL; $test[$a][15] = isset($_POST["vbe|".$b]) ? $_POST["vbe|".$b] : NULL; $test[$a][16] = isset($_POST["vae|".$b]) ? $_POST["vae|".$b] : NULL; $test[$a][17] = isset($_POST["anna|".$b]) ? $_POST["anna|".$b] : NULL; $test[$a][18] = isset($_POST["tr|".$b]) ? $_POST["tr|".$b] : NULL; $test[$a][19] = isset($_POST["dsi|".$b]) ? $_POST["dsi|".$b] : NULL; $test[$a][20] = isset($_POST["abs|".$b]) ? $_POST["abs|".$b] : NULL; $test[$a][21] = isset($_POST["abs_saisie|".$b]) ? $_POST["abs_saisie|".$b] : NULL; $test[$a][22] = isset($_POST["abs_bilan|".$b]) ? $_POST["abs_bilan|".$b] : NULL; $test[$a][23] = isset($_POST["abs_totaux|".$b]) ? $_POST["abs_totaux|".$b] : NULL; $test[$a][24] = isset($_POST["bul_print|".$b]) ? $_POST["bul_print|".$b] : NULL; $test[$a][25] = isset($_POST["visu_equipes_peda|".$b]) ? $_POST["visu_equipes_peda|".$b] : NULL; $test[$a][26] = isset($_POST["visu_listes_ele|".$b]) ? $_POST["visu_listes_ele|".$b] : NULL; $test[$a][27] = isset($_POST["listes_ele_csv|".$b]) ? $_POST["listes_ele_csv|".$b] : NULL; // On assure les différents traitements if ($test[$a][0] == 'on') { // On supprime le statut demandé $sql_d = "DELETE FROM droits_statut WHERE id = '".$b."'"; //echo "$sql_d
"; $query_d = mysqli_query($GLOBALS["mysqli"], $sql_d) OR trigger_error('Impossible de supprimer ce statut : '.mysqli_error($GLOBALS["mysqli"]), E_USER_NOTICE); // Il faut aussi effacer toutes les références à ce statut dans les autres tables $sql_d = "DELETE FROM droits_utilisateurs WHERE id_statut = '".$b."'"; //echo "$sql_d
"; $query_d = mysqli_query($GLOBALS["mysqli"], $sql_d) OR trigger_error('Impossible de supprimer ce statut du : '.mysqli_error($GLOBALS["mysqli"]), E_USER_NOTICE); $sql_d = "DELETE FROM droits_speciaux WHERE id_statut = '".$b."'"; //echo "$sql_d
"; $query_d = mysqli_query($GLOBALS["mysqli"], $sql_d) OR trigger_error('Impossible de supprimer ce statut ds : '.mysqli_error($GLOBALS["mysqli"]), E_USER_NOTICE); } else { // On va vérifier les droits un par un // ne = notes élèves ; bs = bulletins simplifiés ; va = voir absences ; sa = saisir absences // cdt = cahier de textes ; ee = emploi du temps des élèves ; te = tous les emplois du temps for($m = 1 ; $m < $iter ; $m++){ $nbre2 = count($autorise[$m]); // On vérifie si le droit est coché ou non if ($test[$a][$m] == 'on') { $vf = 'V'; }else{ $vf = 'F'; } // On n'oublie pas de mettre à jour tous les fichiers adéquats for($i = 0 ; $i < $nbre2 ; $i++){ //$sql_maj = "UPDATE droits_speciaux SET autorisation = '".$vf."' WHERE id_statut = '".$b."' AND nom_fichier = '".$autorise[$m][$i]."'"; //$query_maj = mysql_query($sql_maj) OR trigger_error("Mauvaise mise à jour : ".mysql_error(), E_USER_WARNING); $sql="SELECT id FROM droits_speciaux WHERE id_statut = '".$b."' AND nom_fichier = '".$autorise[$m][$i]."'"; //echo "$sql
"; $query_select = mysqli_query($GLOBALS["mysqli"], $sql); $result = mysqli_fetch_array($query_select); if (!empty ($result)){ $sql="UPDATE droits_speciaux SET autorisation = '".$vf."' WHERE id_statut = '".$b."' AND nom_fichier = '".$autorise[$m][$i]."'"; }else{ $sql="INSERT INTO `droits_speciaux` VALUES ('','".$b."','".$autorise[$m][$i]."','".$vf."')"; } //echo "$sql
"; $query_maj = mysqli_query($GLOBALS["mysqli"], $sql); if (!$query_maj) { $msg3 .= 'Erreur'; } } } // for($m = 1 ; $m < $iter ; $m++){ } } //print_r($test); // On assure un message de confirmation si les modifications se sont bien passées if ($msg3 === NULL) { $msg3 .= '

Les modifications sont bien enregistrées.

'; } } // On récupère tous les statuts nouveaux qui existent $aff_tableau = $aff_select = $aff_users = $selected = ''; $sql = "SELECT id, nom_statut FROM droits_statut ORDER BY nom_statut"; $query = mysqli_query($GLOBALS["mysqli"], $sql); $nbre_statuts = mysqli_num_rows($query); if ($query) { for($b = 0 ; $b <= $iter ; $b++){ if ($b == 0) { $aff_tableau2[$b] = 'Liste des droits'; }elseif($b == $iter){ // On ajoute une ligne pour la suppression $aff_tableau2[$b] = 'Supprimer ce statut'; }else{ $aff_tableau2[$b] = ''.$menu_accueil[$b][1].''; } } while($rep = mysqli_fetch_array($query)) { /* echo "
";
		print_r($rep);
		echo "
"; */ // On vérifie s'il faut le cocher par défaut ou pas $checked = verifChecked($rep["id"]); /* echo "
";
		print_r($checked);
		echo "
"; */ // On affiche les droits des statuts personnalisés verticalement for($b = 0 ; $b <= $iter ; $b++){ if ($b == 0) { $aff_tableau2[$b] .= ''.$rep["nom_statut"].''; }elseif($b == $iter){ // On ajoute une ligne pour la suppression $aff_tableau2[$b] .= ''; }else{ $aff_tableau2[$b] .= ''; } } } for($b = 0 ; $b <= $iter ; $b++){ // $aff_tableau2[$b] .= ''."\n"; $aff_tableau .= $aff_tableau2[$b].' '."\n"; } } // On traite la partie sur les utilisateurs 'autre' pour leur définir le bon statut // On traite les demandes de l'admin sur la définition des statuts des utilisateurs 'autre' if ($action == "defStatut") { check_token(); // On vérifie si cet utilisateur existe déjà $query_v2 = mysqli_query($GLOBALS["mysqli"], "SELECT id_statut FROM droits_utilisateurs WHERE login_user = '".$login_user."'") OR trigger_error('Impossible de vérifier le statut privé de cet utilisateur.', E_USER_WARNING); $verif_v2 = mysqli_num_rows($query_v2); if ($verif_v2 >= 1) { // alors le statut de cet utilisateur existe, on va donc le mettre à jour $sql_d = "UPDATE droits_utilisateurs SET id_statut = '".$statut_user."' WHERE login_user = '".$login_user."'"; }else{ $sql_d = "INSERT INTO droits_utilisateurs (id, id_statut, login_user) VALUES ('', '".$statut_user."', '".$login_user."')"; } $query_statut = mysqli_query($GLOBALS["mysqli"], $sql_d) OR trigger_error('Impossible d\'enregistrer dans la base.'.mysqli_error($GLOBALS["mysqli"]), E_USER_WARNING); if ($query_statut) { $msg2 .= '

Modification enregistrée.

'; } } // On récupère les utilisateurs qui ont un statut 'autre' $sql_u = "SELECT nom, prenom, login FROM utilisateurs WHERE statut = 'autre' AND etat = 'actif' ORDER BY nom, prenom"; $query_u = mysqli_query($GLOBALS["mysqli"], $sql_u); // On affiche la liste des utilisateurs avec un select des statuts privés $i = 1; while($tab = mysqli_fetch_array($query_u)){ // On récupère son statut s'il existe $query_s = mysqli_query($GLOBALS["mysqli"], "SELECT id_statut FROM droits_utilisateurs WHERE login_user = '".$tab["login"]."'"); $statut = mysqli_fetch_array($query_s); $aff_users .= ' '.$tab["nom"].' '.$tab["prenom"].'
'."\n"; $aff_users .= add_token_field(); $aff_users .= '

'; $i++; } // include("utilisateurs.class.php"); //====================================================== $titre_page = 'Gestion des statuts personnalisés'; $style_specifique = "utilisateurs/style_statut"; include("../lib/header.inc.php"); //====================================================== //debug_var(); ?>

Retour Retour

Vous pouvez définir des statuts personnalisés, ayant une combinaison particulière de droits. Pour pouvoir ensuite attribuer (ci-dessous) un statut personnalisé à un utilisateur, il faut d'abord l'enregistrer avec un statut générique "autre" (CREER un personnel ou MODIFIER un personnel).

Gestion des statuts personnalisés  

Gestion des droits des statuts personnalisés  

  

Ajouter un statut personnalisé