".$chaine."
\n"; } } echo "

".gettext("Création des répertoires classes")."

\n"; // On ajoute les classes if($_POST['create_folders_classes']) { $new_folders_classes=$_POST['new_folders_classes']; for ($loop=0; $loop < count($new_folders_classes); $loop++) { list($Classe,$Niveau)=preg_split("/Classe_/",$new_folders_classes[$loop]); // On fait le test avant le updateClasses.pl parce qu'updateClasses.pl fait sauter les droits Profs $commande="cd /var/se3/Classes; /usr/bin/getfacl . | grep default:group:Profs >/dev/null && echo 1"; my_echo_debug("Test: $commande"); $acl_group_profs_classes = exec($commande); my_echo_debug("\$acl_group_profs_classe=$acl_group_profs_classes"); $commande="/usr/bin/sudo /usr/share/se3/scripts/updateClasses.pl -c $Niveau"; my_echo_debug("

Creation du dossier de classe $Niveau : ".$commande); system($commande); $rep_niveau = "/var/se3/Classes/Classe_".$Niveau; if ($acl_group_profs_classes=="1") { // Il existe deja des droits pour le groupe Profs dans /var/se3/Classes // On va remettre les droits Profs en tenant compte des ajouts de dossiers effectues echo "Attribution des droits au groupe Profs.
"; $commande="/usr/bin/sudo /usr/share/se3/scripts/se3_droits_profs_sur_classes.sh"; my_echo_debug($commande); system ($commande); } if (is_dir("$rep_niveau")) { echo "Répertoire classe ".$Niveau. " créé.
\n"; } else { echo "Echec : Création du répertoire classe ".$Niveau."
\n"; echo "Vérifier que le groupe Equipe correspondant à la Classe existe.
\n"; } } } // On supprime les classes if($_POST['delete_folders_classes']) { $old_RessourcesClasses=$_POST['old_RessourcesClasses']; for ($loop=0; $loop < count($old_RessourcesClasses); $loop++) { list($Classe,$Niveau)=preg_split("/Classe_/",$old_RessourcesClasses[$loop]); system ("/usr/bin/sudo /usr/share/se3/scripts/deleteClasses.sh $Niveau"); $rep_niveau = "/var/se3/Classes/Classe_".$Niveau; if ( ! is_dir("$rep_niveau")) { echo "Suppression du répertoire classe ".$Niveau."
\n"; } else { echo "Echec : Suppression du répertoire classe ".$Niveau."
\n"; } } } // On rafaichit on ne sait jamais, cela replace les acl if($_POST['refresh_folders_classes']) { $dirClasses = dir ("/var/se3/Classes"); $indice=0; while ( $Entry = $dirClasses ->read() ) { if ( preg_match("/^Classe_/", $Entry) ) { $RessourcesClasses[$indice] = $Entry; list($Classe,$Niveau)=preg_split("/Classe_/",$RessourcesClasses[$indice]); //echo "Rafraichissement du répertoire classe ".$Niveau."
\n"; $commande="/usr/bin/sudo /usr/share/se3/scripts/updateClasses.pl -c $Niveau"; my_echo_debug($commande); system ($commande); $indice++; } } // Dans le cas ou on donne le droit a tous les profs sur les repertoires classes if ($_POST['acl_group_profs']) { $commande="/usr/bin/sudo /usr/share/se3/scripts/se3_droits_profs_sur_classes.sh"; my_echo_debug($commande); system ($commande); } else { // Effacement du droit Profs sur les fichiers et dossiers existants $commande="/usr/bin/sudo /usr/share/se3/scripts/se3_droits_profs_sur_classes.sh droits=n"; my_echo_debug($commande); system ($commande); } echo "

\n"; echo "Continuez\n"; echo "
\n"; include ("pdp.inc.php"); exit; } // On rafaichit les classes selectionnees if($_POST['refresh_classes']||$_POST['clean_classes']) { $refresh_RessourcesClasses=$_POST['old_RessourcesClasses']; if ( count($refresh_RessourcesClasses) > 0 ) { for ($loop=0; $loop < count($refresh_RessourcesClasses); $loop++) { list($Classe,$Niveau)=preg_split("/Classe_/",$refresh_RessourcesClasses[$loop]); if($_POST['refresh_classes']) { // On fait le test avant le updateClasses.pl parce qu'updateClasses.pl fait sauter les droits Profs $commande="cd /var/se3/Classes/$refresh_RessourcesClasses[$loop]; /usr/bin/getfacl . | grep default:group:Profs >/dev/null && echo 1"; my_echo_debug("Test: $commande"); $acl_group_profs_classe = exec($commande); my_echo_debug("\$acl_group_profs_classe=$acl_group_profs_classe"); // Rafraichissement de la classe: //echo "rafraichissement de la classe : $Niveau
\n"; $commande="/usr/bin/sudo /usr/share/se3/scripts/updateClasses.pl -c $Niveau "; my_echo_debug($commande); system ($commande); // Dans le cas ou on donne le droit a tous les profs sur les repertoires classes if ($_POST['acl_group_profs']) { $commande="/usr/bin/sudo /usr/share/se3/scripts/se3_droits_profs_sur_classes.sh classe=".$refresh_RessourcesClasses[$loop]; my_echo_debug($commande); system ($commande); } else { if ($acl_group_profs_classe=="1") { echo "Rafraichissement de la classe : ".$refresh_RessourcesClasses[$loop]."
\n"; $commande="/usr/bin/sudo /usr/share/se3/scripts/se3_droits_profs_sur_classes.sh classe=".$refresh_RessourcesClasses[$loop]." droits=n"; my_echo_debug($commande); system ($commande); echo "Suppression des droits pour le groupe Profs (seuls les profs de l'equipe ont encore les droits).
\n"; } else { // Vérification au cas ou le script updateClasses.pl serait modifie entre temps $commande="cd /var/se3/Classes/$refresh_RessourcesClasses[$loop]; /usr/bin/getfacl . | grep default:group:Profs >/dev/null && echo 1"; my_echo_debug("Test: $commande"); $acl_group_profs_classe = exec($commande); my_echo_debug("\$acl_group_profs_classe=$acl_group_profs_classe"); if ($acl_group_profs_classe!="1") { echo "Le groupe Profs n'a pas de droits sur le dossier (seuls les profs de l'equipe ont les droits).
\n"; } } } } elseif($_POST['clean_classes']) { echo "Nettoyage de la classe : $Niveau
\n"; $commande="/usr/bin/sudo /usr/share/se3/scripts/cleanClasses.pl $Niveau "; my_echo_debug($commande); system ($commande); } } } echo "

\n"; echo "Continuez\n"; echo "
\n"; include ("pdp.inc.php"); exit; } echo "
\n"; // configuration mono serveur : determination des parametres du serveur $serveur=search_machines ("(l=maitre)", "computers"); $cn_srv= $serveur[0]["cn"]; $stat_srv = $serveur[0]["l"]; $ipHostNumber = $serveur[0]["ipHostNumber"]; // Recherche de la liste des classes dans l'annuaire $list_classes=search_groups("cn=Classe_*"); // Recherche des sous dossiers classes déja existant sur le serveur selectionné // Constitution d'un tableau avec les ressources deja existantes $dirClasses = dir ("/var/se3/Classes"); $indice=0; while ( $Entry = $dirClasses ->read() ) { if (( preg_match("/^Classe_/", $Entry) ) && (!preg_match("/^Classe_grp/", $Entry) )) { $RessourcesClasses[$indice] = $Entry; $indice++; } } if(isset($RessourcesClasses)) { array_multisort($RessourcesClasses, SORT_STRING); } // Creation d'un tableau des nouvelles ressources a créer par // elimination des ressources deja existantes $k=0; for ($i=0; $i < count($list_classes); $i++ ) { for ($j=0; $j < count($RessourcesClasses); $j++ ) { if ( $list_classes[$i]["cn"] == $RessourcesClasses[$j]) { $exist = true; break; } else { $exist = false; } } if (!$exist) { $list_new_classes[$k]["cn"]= $list_classes[$i]["cn"]; $k++; } } // Affichage de la table echo "

Gestion des ressources classes

\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
Classes à créer "; echo "Remarque : Un répertoire peut être créé, que si il existe une équipe correspondante.')")."\">Classes créées "; echo "
\n"; // Affichage menu de sélection des sous-dossiers classes a créer if ( count($list_new_classes)>15) $size=15; else $size=count($list_new_classes); if ( count($list_new_classes)>0) { echo "
\n"; echo "
\n"; echo "\n"; // echo "\n"; // echo "\n"; echo "\n"; echo "
\n"; // Vérification selection d'au moins une classe if ( $create_folders_classes && count($new_folders_classes)==0 ) { echo "
".gettext("Vous devez sélectionner au moins une classe !")."
\n"; } } else { echo "
".gettext("Pas de nouvelles classes !")."
\n"; } echo "
\n"; if ( count($RessourcesClasses)>15) $size=15; else $size=count($RessourcesClasses); if ( count($RessourcesClasses)>0) { echo "
\n"; echo "
\n"; // echo "\n"; echo "\n"; echo "par exemple suite à l\'ajout de nouveaux élèves.
En Cas de migration d\'une année à une autre, les dossiers de l\année précédente des élèves seront copiés dans un sous-dossier Archive dans le dossier de la nouvelle année.
Si l\'élève n\'est plus dans l\'établissement, son dossier est caché.
')")."\">
\n"; echo "\n"; echo " En Cas de migration d\'une année à une autre, les dossiers de l\année précédente des élèves seront copiés dans un sous-dossier Archive dans le dossier de la nouvelle année.
Si l\'élève n\'est plus dans l\'établissement, son dossier est caché.
')")."\">
\n"; // echo "\n"; echo "\n"; echo "Attention, la suppression entrainera la perte des données de la classe.')")."\">\n"; echo "
\n"; // Vérification selection d'au moins une classe if ( ($refresh_classes || $delete_folders_classes || $clean_classes) && count($old_RessourcesClasses)==0 ) { echo "
".gettext("Vous devez sélectionner au moins une classe !")."
\n"; } } /* echo "
\n"; if ( count($RessourcesClasses)>15) $size=15; else $size=count($RessourcesClasses); if ( count($RessourcesClasses)>0) { echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "
\n"; } */ echo "
\n"; echo "
\n"; echo "

Rafraichir les répertoires classes existants

\n"; echo "
\n"; $acl_group_profs_classes = exec("cd /var/se3/Classes; /usr/bin/getfacl . | grep group:Profs >/dev/null && echo 1"); if ($acl_group_profs_classes=="1") { $CHECKED="checked"; } echo "Droits du groupe Profs : "; echo "\n"; echo "Si vous souhaitez donner un droit au groupe Profs sur une classe particulière, vous devez passer par Droits sur fichiers
Attention : Le fonctionnement normal est d\'avoir la case non cochée. Les profs ont alors les droits uniquement sur leurs classes.')")."\">
\n"; echo "

\n"; echo "\n"; echo "\n"; echo "Attention : Cette opération peut être longue.')")."\">\n"; echo "
\n"; } // Fin if is_admin include ("pdp.inc.php"); ?>