$val) {
$$cle = $val;
}
//Pour tenir compte des essais...
$nom_de_la_page="dossier_echange.php";
echo "
".gettext("Gestion des dossiers d'échange")."
";
//if (is_admin("se3_is_admin",$login)=="Y") {
//aide
$_SESSION["pageaide"]="Ressources_et_partages#Dossier_.C3.A9change";
//La gestion multi-serveur n'est pas en place...
//Je l'ai laissee en pensant faire des essais par la suite,
//mais je n'ai encore jamais fait l'install multi-serveur
//et par consequent, je n'en ai pas sous le coude pour tester;o).
// Prepositionnement variables
$mono_srv = false;
$multi_srv = false;
// Recherche de la nature mono ou multi serveur de la plateforme SE3
$master=search_machines ("(l=maitre)", "computers");
$slaves= search_machines ("(l=esclave)", "computers");
if ( count($master) == 0 ) {
echo gettext("ERREUR : Il n'y a pas de serveur maitre déclaré dans l'annuaire !
Veuillez contacter le super utilisateur du serveur SE3.
");
} elseif ( count($master) == 1 && count($slaves) == 0 ) {
// Plateforme mono-serveur
$mono_srv = true;
} elseif ( count($master) == 1 && count($slaves) > 0 ) {
$multi_srv = true;
}
// Fin Recherche de la nature mono ou multi serveur de la plateforme SE3
if ( $mono_srv ) {
// 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"];
} elseif ($multi_srv) {
// configuration multi-serveurs : presentation d'un form de selection du serveur
if ( !$selected_srv && !$del_folders_classes) {
echo gettext("Sélection du serveur ou vous souhaitez lister les ressources classes disponibles :
");
$servers=search_computers ("(|(l=esclave)(l=maitre))");
echo "\n";
echo $form;
} elseif ( $selected_srv && $multi_srv) {
// configuration multi serveurs : determination des parametres du serveur
$serveur=search_machines ("(cn=$cn_srv)", "computers");
$stat_srv = $serveur[0]["l"];
$ipHostNumber = $serveur[0]["ipHostNumber"];
}
}
// Recherche des ressources classes existantes
if (is_admin("se3_is_admin",$login)=="Y") {
if ($stat_srv == "maitre") {
// Serveur maitre : Recherche des ressources classes existantes
// ouverture du repertoire Classes
$loop=0;
$repClasses = dir ("/var/se3/Classes/");
// recuperation de chaque entree
while ($ressource = $repClasses->read()) {
if ( preg_match("/^Classe_/", $ressource) ) {
$list_ressources[$loop]= $ressource;
$loop++;
}
}
$repClasses->close();
} elseif ($stat_srv == "esclave") {
// Serveur esclave : Recherche des ressources classes existantes
exec ("ssh -l remote_adm $ipHostNumber 'ls /var/se3/Classes'", $list_ressources, $ReturnValue);
}
}
else{
include("fonc_outils.inc.php");
$list_ressources=classes_prof($login);
}
// Fin Recherche des ressources classes existantes
// Presentation de la liste des ressources disponibles
if ( ($stat_srv == "maitre" || $stat_srv == "esclave") ) {
//Le choix des classes a traiter est-il fait?
if(!isset($choice_done)){
//echo "".gettext("Liste des ressources Classes disponibles sur le serveur "). "$cn_srv
\n";
echo "".gettext("Création/Activation/Désactivation des dossiers _echange sur le serveur "). "$cn_srv
\n";
if (count($list_ressources) == 0 ) {
echo "".gettext("Il n'y a pas de ressources Classes sur ce serveur !")."
\n";
} else {
if ( count($list_ressources)>10) $size=10; else $size=count($list_ressources);
//echo "Création/Activation/Désactivation des dossiers _echange
";
//echo "\n";
}
}
else {
//PARTIE ACTION:
//Le choix des classes a traiter a ete effectue dans le formulaire ci-dessus.
//echo "activate=$activate
\n";
echo "".gettext("Traitement des dossiers _echange")."
\n";
/*
if(count($list_classes)=="0"){
echo "".gettext("Crénom de bourricot, vous n'avez pas sélectionné de classe !")."
";
}
else{
for ($loop=0; $loopTraitement du dossier $list_classes[$loop]/_echange
\n";
echo "$textactivation du dossier $list_classes[$loop]/_echange
\n";
//echo "exec (\"/bin/sh /usr/share/se3/scripts/echange_classes.sh \\\"$list_classes[$loop]\\\" \\\"$activate\\\"\")
\n";
exec ("/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"$activate\"");
echo "\n";
}
}
}
*/
for ($loop=0; $loop".count($list_classes)."\n";
//if("$list_classes[$loop]"!=""){
if ("$etat_actuel[$loop]"!="$activate[$loop]"){
if("$activate[$loop]"!=""){
if("$activate[$loop]"=="actif"){
$textactivation="Activation";
}
else{
$textactivation="Désactivation";
}
echo "$textactivation ".gettext(" du dossier")." $list_classes[$loop]/_echange
\n";
exec ("/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"$activate[$loop]\"");
//sleep(1);
//Dans le cas ou il existait une temporisation,
//comme on refait ici le choix d'activer ou de desactiver l'acces,
//on vide l'eventuelle temporisation anterieure.
if(file_exists("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh")){
unlink("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh");
}
sleep(1);
//On ne met en place que des temporisations de deverrouillage
//(donc: quand un verrouillage est mis en place, on teste si un minutage est demande)
if(("$delai[$loop]"=="oui")&&("$activate[$loop]"=="verrouille")&&(("$minutes[$loop]"!="0")||("$heures[$loop]"!="0"))){
$chemin_tmp="/tmp";
//$chemin_tmp="/var/remote_adm";
/*
//Le fichier est vire plus haut.
if(file_exists("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh")){
unlink("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh");
}
*/
$fichier=fopen("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh","w+");
if($fichier){
fwrite($fichier,"#!/bin/bash\n");
fwrite($fichier,"/usr/bin/sudo /usr/share/se3/scripts/echange_classes.sh \"$list_classes[$loop]\" \"actif\"\n");
chmod("$chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh",0700);
fclose($fichier);
$duree_delai=$heures[$loop]*60+$minutes[$loop];
exec ("at -f $chemin_tmp/levee_restriction_echange_$list_classes[$loop].sh +$duree_delai minute");
echo gettext("Les dossiers I:\public et H:\\")."$list_classes[$loop]\_echange ".gettext(" seront réactivés dans ")." $duree_delai ".gettext("minutes.\n");
unset($duree_delai);
}
}
echo "
\n";
}
else{
//Pas de modification pour $list_classes[$loop]
//parce que le dossier n'est pas encore initialies
//et qu'aucune case n'etait selectionnee.
echo "\n";
}
}
else{
//Pas de modification pour cette classe
//(le bouton radio d'activation/verrouillage n'a pas ete deplace).
echo "\n";
}
//}
}
echo "".gettext("Retour au menu 'Dossier _echange'")."
\n";
}
}
//} // Fin if is_admin
include ("pdp.inc.php");
?>