".gettext("Voir la liste des délégations en cours")."

\n"; } /** * test si $salles a un template et retourn true * @Parametres * @Return true si on a bien un template */ function is_template($salles) { if(is_dir("/home/templates/".$salles)) return true; } if (is_admin("computers_is_admin",$login)=="Y") { // Aide //aide $_SESSION["pageaide"]="Gestion_des_parcs#D.C3.A9l.C3.A9gation_de_parc"; // Titre echo "

".gettext("Délégation de parc")."

"; // On teste si il existe des parcs $list_parcs=search_machines("objectclass=groupOfNames","parcs"); if ( count($list_parcs)==0) { echo "

"; echo gettext("Il n'existe aucun parc. Vous devez d'abord créer un parc"); exit; } if (!(is_admin("computers_is_admin",$login)=="Y") and (!is_admin("parc_can_manage",$login)=="Y")) { echo gettext("Vous n'avez pas les droits nécessaires pour ouvrir cette page..."); exit; } //************************Definition des variables******************* $user=isset($_GET['nouveau']) ? $_GET['nouveau'] : NULL; $salles=isset($_POST['salles']) ? $_POST['salles'] : (isset($_GET['salles']) ? $_GET['salles'] : NULL); $action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : ""); $nouveau=isset($_GET['nouveau']) ? $_GET['nouveau'] : NULL; $template=is_template($salles); //test pour savoir si on a choisi un parc ou un template ( pour affichage) if ($template) { $aide= aide(gettext("Si vous avez choisi un template et une délégation forte, ceci implique que vous voulez donnez accès au fichier logon.bat et au menu Clients Windows à cet utilisateur."),"\"\""); $mot="template"; } else { $mot="parc"; } $parcs=array(); switch ($action) { //************Voir les delegations en cours*************************** default: if ((is_admin("computers_is_admin",$login)=="N") and (is_admin("parc_can_manage",$login)=="N")) { exit; } echo "

".gettext("Délégations en cours")."

"; if (is_admin("computers_is_admin",$login)=="Y") { $query="select * from delegation order by login asc"; } else { $parc_du_login=list_parc_delegate($login); foreach ($parc_du_login as $parc) { if ($ajout_parc) { $ajoutparc=$ajoutparc." and parc='$parc' "; } else { $ajoutparc=" parc='$parc' "; } } $query="select * from delegation where $ajoutparc order by login asc;"; // echo $query; } $result=mysql_query($query) or die("Impossible d'accéder à la table"); $ligne=mysql_num_rows($result); if ($ligne==0) { echo gettext("Aucune délégation en cours"); } else { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; $liste_delegate = array();; //$last_user=""; while ($row=mysql_fetch_row($result)) { if ((isset($last_user)) and ($last_user) and ($last_user<>$row[1])) { echo "\n";} array_push($liste_delegate,$row[1]); echo "\n"; echo "\n"; echo ""; if (is_admin("computers_is_admin",$login)=="Y") { echo "\n"; echo "\n"; } } if ($row[3]=="view") { echo gettext("Délégation faible")."\n"; if (is_admin("computers_is_admin",$login)=="Y") { echo"\n"; echo "\n"; } } if ((is_admin("computers_is_admin",$login)=="Y") or ((this_parc_delegate($login,$row[2],"manage")) and ($row[3]=="view"))) { echo "\n"; echo "\n"; } else { echo "\n"; } //echo ""; //echo ""; echo""; $last_user=$row[1]; } echo "
".$row[1]."".$row[2].""; if ($row[3]=="manage") { echo gettext("Délégation forte").""; echo "\"".gettext("Diminuer"; echo "\"".gettext("Augmenter"; echo "\"".gettext("Supprimer \"\"\"\"


\n"; } include ("pdp.inc.php"); //break; //*******************Choix d'une salle******************************** if (!$salles) { //if (is_admin("computers_is_admin",$login)=="Y") { echo "

Délégations

Voir les délégations en cours"; } //choix du template echo "

".gettext("Choisir un nouveau parc à déléguer")."

"; $list_parcs=search_machines("objectclass=groupOfNames","parcs"); sort($list_parcs); echo "
\n"; echo ""; echo "  \n"; echo "Il peut vous servir à regrouper vos machines (par salle par exemple).
Une machine peut appartenir à plusieurs parcs en fonction de vos besoins. Il peut être lié à un template du même nom si vous avez créé un répertoire correspondant dans le répertoire Admhomes/templates. Vous pourrez alors agir sur les machines du parc en utilisant les possibilités des templates.')")."\">\"help\"
"; echo "
\n"; // Affiche les templates a deleguer if (is_admin("computers_is_admin",$login)=="Y") { echo "

".gettext("Choisir un template à déléguer")."

"; $handle=opendir('/home/templates'); echo "
\n"; echo ""; echo "\n"; echo "
  • base
  • groupe
  • parcs
  • . Il est possible de faire des doubles templates de type: N\'hésitez pas à consulter la documentation sur le site sambaedu.org , rubrique Point de vue de l\'administrateur, Le répertoire templates.')")."\">\"help\"
    "; echo "
    \n"; closedir($handle); } } break; //*********************Choix d'un utilisateur****************************** case "new": if (!$nouveau) { //choix du user echo "

    ".gettext("Vous avez choisi de déléguer la gestion de")." $salles $aide"; echo "

    \n"; echo gettext("Indiquez un utilisateur : "); echo "\n"; echo ""; echo ""; echo "

    "; if (is_admin("computers_is_admin",$login)=="Y") { echo "\n"; echo "
    \n"; } if ((is_admin("computers_is_admin",$login)=="Y") or (this_parc_delegate($login,$salles,"manage"))) { //pour les templates, on est automatiquement dans une delegation forte !!!!!!!!!!!! //en effet, la delegation sur les templates donne acces a logon.bat et a clients windows //des qu'un parc a un template associe il est considere comme un template //if (is_parc($salles)) { echo "\n"; echo ""; //} echo "
    \n"; echo ""; } echo"

    \n"; echo "
    \n"; } break; //**********************************action manage*********************** case "manage": //********************************action commun a: manage, view, nodelegate if (!($nouveau) or (!$salles)) { echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur"); retour_delegate(); exit ; } echo "

    ".gettext("Délégation du")." $mot $salles $aide

    \n"; if (is_admin("computers_is_admin",$user)=="Y") { echo "".gettext("Cet utilisateur bénéficie du droit computers_is_admin , il a déjà tous les droits sur les parcs et les templates")."
    "; } if (is_admin("computers_is_admin",$login)=="N") { exit; } if(@is_dir("/home/$user")) { } else { echo "".gettext("Cet utilisateur n'a pas de répertoire personnel.
    Il est impossible de placer le raccourci du")." $mot ".gettext("sur son bureau.
    Demandez à cet utilisateur de se connecter au moins une fois sur le domaine.")."
    "; exit; } if (is_admin("parc_can_manage",$user)=="Y") { echo "

    ".gettext("Cet utilisateur bénéficie déjà d'une délégation forte")."

    "; } else { $right="parc_can_manage"; $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; $pDndel="cn=parc_can_view,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""); // exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDndel\""); echo gettext("La délégation forte (parc_can_manage) est prise en compe: Plus d'éléments du menu sont accessibles à")." $user ".gettext("dans")." $salles
    \n"; echo "
    "; // echo "Le droit delegation faible ( parc_can_view) a ete retire"; } //ajout dans la table delegation si necessaire $query="select parc from delegation where login='$user' and parc='$salles';"; $result= mysql_query($query); if ($result) { $ligne= mysql_num_rows($result); if ($ligne>0) { if (is_template($salles)) { exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); } echo "

    ".gettext("L'utilisateur")." $user ".gettext("avait déjà une délégation sur ce")." $mot

    \n"; $query_suppr="delete from delegation where login='$user' and parc='$salles';"; $resul_suppr=mysql_query($query_suppr); } $query_verif="select parc from delegation where login='$user' and niveau='view';"; $result_verif= mysql_query($query_verif); if ($result_verif) { $ligne_verif= mysql_num_rows($result_verif); if ($ligne_verif==0) { $right="parc_can_view"; $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } } } $query_insert="Insert into delegation (ID,login,parc,niveau) VALUES ('','$user','$salles','manage');"; $result_insert=mysql_query($query_insert) or die ("Erreur d'écriture dans la table"); if ($template) { //echo "/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"delegate\""; exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"delegate\""); echo "

    $user".gettext("verra également apparaître dans Mes Documents/Délégation le répertoire")." $salles ".gettext("pour pouvoir gérer les scripts de démarrage et les icônes des machines du parc")." $salles .


    "; } update_wpkg(); retour_delegate(); break; //**************************************action nodelegate******************************************** case "nodelegate": //********************************action commun a: manage, view, nodelegate if (!($nouveau) or (!$salles)) { echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur"); retour_delegate(); exit ; } echo "

    ".gettext("Délégation de parcs")."

    \n"; if (is_admin("computers_is_admin",$user)=="Y") { echo "".gettext("Cet utilisateur bénéficie du droit computers_is_admin , il a déjà tous les droits sur les parcs et les templates")."
    "; } //retirer le champ dans la table $query="select parc from delegation where login='$user' and parc='$salles';"; $result= mysql_query($query); if ($result) { $ligne= mysql_num_rows($result); if ($ligne==1) { //suppression pour ce parc $query_suppr="delete from delegation where login='$user' and parc='$salles';"; $resul_suppr=mysql_query($query_suppr); echo "

    ".gettext("La délégation est supprimé pour")." $user ".gettext("sur le")." $mot $salles

    \n"; } } //verification qu'il n'y a pas d'autres delegations en cours $query="select parc,niveau from delegation where login='$user';"; $result= mysql_query($query); if ($result) { $ligne= mysql_num_rows($result); if ($ligne>0) { //une autre delegation est en cours, on laisse les droits tel quel echo "
    \n"; echo "\n"; echo "\n"; while ($row=mysql_fetch_row($result)) { echo "\n"; echo "\n"; } echo "
    $row[0]\n"; if ($row[1]=="manage") { echo gettext(" Délégation forte"); $fort++;} if ($row[1]=="view") { echo gettext("Délégation faible"); $faible++;} echo "
    \n"; } } //retirer le droit (potentiellement les deux droits) si ce user n'a plus aucun parc delegue !! if (((!isset($fort))||(!$fort)) and (is_admin("parc_can_manage",$user)=="Y")) { echo "

    ".gettext("Suppression du droit `Délégation forte(parc_can_manage)`")."

    \n"; $right="parc_can_manage"; $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } if (((!isset($faible))||(!$faible)) and (is_admin("parc_can_view",$user)=="Y")) { echo "

    ".gettext("Suppression du droit `Délégation faible (parc_can_view)`")."

    "; $right="parc_can_view"; $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } if (!this_parc_delegate($user,$salles,"manage")) { exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); } // echo "Commande prise en compte"; update_wpkg(); retour_delegate(); break; //*******************************action view******************************* case "view": //********************************action commun a: manage, view, nodelegate if (!($nouveau) or (!$salles)) { echo gettext("Vouz devez choisir un")." $mot ".gettext("et un utilisateur"); retour_delegate(); exit ; } echo "

    ".gettext("Délégation du")." $mot:

    \n"; if (is_admin("computers_is_admin",$user)=="Y") { echo "".gettext("Cet utilisateur bénéficie du droit computers_is_admin , il a déjà tous les droits sur les parcs et les templates")."
    "; } //ajout dans ldap du droit parc_can_view si le droit n'est pas deja mis $right="parc_can_view"; if (is_admin($right,$user)=="Y") { echo gettext("Cet utilisateur bénéficie déjà d'une délégation faible")."
    "; } else { $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""); } if (is_template($salles)) { exec ("/usr/bin/sudo /usr/share/se3/scripts/delegate_parc.sh \"$salles\" \"$user\" \"nodelegate\""); } // echo "/usr/share/se3/sbin/groupAddEntry.pl \"$cDn\" \"$pDn\""; echo gettext("La délégation est prise en compte: Certains éléments du menu sont accessibles à")." $user
    "; echo "

    ".gettext("L'utilisateur $user bénéficie d'une délégation faible, il ne pourra pas modifier vos réglages.")."

    "; //ajout dans la table delegation si necessaire $query="select parc from delegation where login='$user' and parc='$salles';"; $result= mysql_query($query); if ($result) { $ligne= mysql_num_rows($result); if ($ligne>0) { echo "

    ".gettext("L'utilisateur")." $user ".gettext("avait déjà une délégation sur le")." $mot $salles

    \n"; $query_suppr="delete from delegation where login='$user' and parc='$salles';"; $resul_suppr=mysql_query($query_suppr); } $query_verif="select parc from delegation where login='$user' and niveau='manage';"; $result_verif= mysql_query($query_verif); if ($result_verif) { $ligne_verif= mysql_num_rows($result_verif); if ($ligne_verif==0){ $right="parc_can_manage"; $cDn = "uid=$user,$peopleRdn,$ldap_base_dn"; $pDn = "cn=$right,$rightsRdn,$ldap_base_dn"; exec ("/usr/share/se3/sbin/groupDelEntry.pl \"$cDn\" \"$pDn\""); } } } $query_insert="Insert into delegation (ID,login,parc,niveau) VALUES ('','$user','$salles','view');"; $result_insert=mysql_query($query_insert) or die ("Erreur d'écriture dans la table"); update_wpkg(); retour_delegate(); break; // fin case "view": } // fin du switch($action) } include ("pdp.inc.php"); ?>