[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 5 * Ajoute des utilisateurs aux groupes dans l'annuaire 6 * @Version $Id: add_user_group.php 8034 2014-01-13 20:52:50Z christian.westphal $ 7 8 * @Projet LCS / SambaEdu 9 10 * @auteurs jLCF jean-luc.chretien@tice.ac-caen.fr 11 * @auteurs oluve olivier.le_monnier@crdp.ac-caen.fr 12 * @auteurs wawa olivier.lecluse@crdp.ac-caen.fr 13 * @auteurs Equipe Tice academie de Caen 14 15 * @Licence Distribue selon les termes de la licence GPL 16 17 * @note 18 */ 19 20 /** 21 22 * @Repertoire: annu 23 * file: add_user_group.php 24 */ 25 26 27 28 29 30 include "entete.inc.php"; 31 include "ldap.inc.php"; 32 include "ihm.inc.php"; 33 34 require_once ("lang.inc.php"); 35 bindtextdomain('se3-annu',"/var/www/se3/locale"); 36 textdomain ('se3-annu'); 37 38 //Aide 39 $_SESSION["pageaide"]="Annuaire"; 40 41 echo "<h1>".gettext("Annuaire")."</h1>\n"; 42 43 aff_trailer ("3"); 44 45 if (is_admin("Annu_is_admin",$login)=="Y") { 46 47 $uid=isset($_GET['uid']) ? $_GET['uid'] : (isset($_POST['uid']) ? $_POST['uid'] : ""); 48 $filtre=isset($_GET['filtre']) ? $_GET['filtre'] : (isset($_POST['filtre']) ? $_POST['filtre'] : ""); 49 50 $add_user_group=isset($_POST['add_user_group']) ? $_POST['add_user_group'] : ""; 51 $categorie=isset($_POST['categorie']) ? $_POST['categorie'] : ""; 52 $new_categorie=isset($_POST['new_categorie']) ? $_POST['new_categorie'] : ""; 53 $classe_gr=isset($_POST['classe_gr']) ? $_POST['classe_gr'] : array(); 54 $matiere_gr=isset($_POST['matiere_gr']) ? $_POST['matiere_gr'] : array(); 55 $cours_gr=isset($_POST['cours_gr']) ? $_POST['cours_gr'] : array(); 56 $autres_gr=isset($_POST['autres_gr']) ? $_POST['autres_gr'] : array(); 57 $equipe_gr=isset($_POST['equipe_gr']) ? $_POST['equipe_gr'] : array(); 58 $remplacant=isset($_POST['remplacant']) ? $_POST['remplacant'] : ""; 59 60 //$filter=isset($_POST['filter']) ? $_POST['filter'] : ""; 61 62 //debug_var(); 63 64 //echo "\$filtre=$filtre<br />"; 65 66 if ( !$add_user_group ) { 67 // Ajout de groupes 68 list($user, $groups)=people_get_variables($uid, true); 69 // Affichage du nom et de la description de l'utilisateur 70 echo "<H2>".$user["fullname"]."</H2>\n"; 71 if ($user["description"]) echo $user["description"]."<BR>"; 72 73 // Recherche si le user appartient a une categorie principale 74 if ( count($groups) ) { 75 for ($loop=0; $loop < count ($groups) ; $loop++) { 76 if ( ($groups[$loop]["cn"] == "Profs") || ($groups[$loop]["cn"] == "Eleves")|| ($groups[$loop]["cn"] == "Administratifs") ) { 77 $categorie = $groups[$loop]["cn"]; 78 } 79 } 80 } 81 82 // Affichage boite de reaffectation du groupe principal 83 if ( $categorie ) { 84 echo "<table> 85 <tr> 86 <td><u>".gettext("Membre de la catégorie")."</u> : </td> 87 <td> 88 <form action=\"add_user_group.php?uid=$uid\" method=\"post\"> 89 <select name=\"new_categorie\"> 90 \n"; 91 92 if ($categorie == gettext("Administratifs") ) { 93 echo "<option>".gettext("Administratifs")."</option> 94 <option>".gettext("Profs")."</option> 95 <option>".gettext("Eleves")."</option>\n"; 96 } elseif ($categorie == gettext("Profs") ) { 97 echo "<option>".gettext("Profs")."</option> 98 <option>".gettext("Administratifs")."</option> 99 <option>".gettext("Eleves")."</option>\n"; 100 } else { 101 echo "<option>".gettext("Eleves")."</option> 102 <option>".gettext("Profs")."</option> 103 <option>".gettext("Administratifs")."</option>\n"; 104 } 105 106 echo" </select> 107 </td> 108 </tr> 109 </table><br>\n"; 110 } else { 111 // Affichage du menu d'affectation de l'utilisateur a une categorie principal 112 echo "<table> 113 <tr> 114 <td><u>".gettext("Affectation de l'utilisateur à une catégorie")." </u> : </td> 115 <td> 116 <form action=\"add_user_group.php?uid=$uid\" method=\"post\"> 117 <select name=\"new_categorie\"> 118 <option>".gettext("Eleves")."</option> 119 <option>".gettext("Profs")."</option> 120 <option>".gettext("Administratifs")."</option> 121 </select> 122 </td> 123 </tr> 124 </table><br>\n"; 125 } 126 127 // Affichage des groupes secondaires 128 if ( count($groups) > 1 ) { 129 echo "<U>".gettext("Membre des groupes secondaires")."</U> :<BR><UL>\n"; 130 for ($loop=0; $loop < count ($groups) ; $loop++) { 131 if ( ($groups[$loop]["cn"] != "Profs") && ($groups[$loop]["cn"] != "Eleves") && ($groups[$loop]["cn"] != "Administratifs") ) { 132 echo "<LI><A href=\"group.php?filter=".$groups[$loop]["cn"]."\">".$groups[$loop]["cn"]."</A>,<font size=\"-2\"> ".$groups[$loop]["description"]; 133 $login=preg_split ("#\,#",ldap_dn2ufn($groups[$loop]["owner"]),2); 134 if ($login[0] == $uid) echo "<strong><font color=\"#ff8f00\"> (".gettext("professeur principal").")</font></strong>"; 135 echo "</font></LI>\n"; 136 // constitution d'un filtre pour exclure les groupes d'appartenance 137 // de la liste des groupes proposes 138 $filter = $filter."(!(cn=".$groups[$loop]["cn"]."))"; 139 } 140 } 141 echo "</UL>"; 142 } 143 144 if ( $categorie ) { 145 //echo "\$filtre=$filtre<br />"; 146 147 // Etablissement des listes des groupes disponibles 148 if(!isset($filter)) {$filter="";} 149 $list_groups=search_groups("(&(cn=*) $filter )"); 150 // Etablissement des sous listes de groupes : 151 $i = 0; $j =0; $k =0; $l = 0 ; $m = 0; 152 for ($loop=0; $loop < count ($list_groups) ; $loop++) { 153 //echo "\$list_groups[$loop][\"cn\"]=".$list_groups[$loop]["cn"]."<br />"; 154 //echo "\$list_groups[$loop][\"cn\"]=".$list_groups[$loop]["cn"].": ($filtre) <br />"; 155 if ($filtre=="") { 156 // Cours 157 if ( preg_match ("#Cours_#", $list_groups[$loop]["cn"]) ) { 158 $cours[$i]["cn"] = $list_groups[$loop]["cn"]; 159 $cours[$i]["description"] = $list_groups[$loop]["description"]; 160 //echo " Cours<br />"; 161 $i++; 162 // Classe 163 } elseif ( preg_match ("#Classe_#", $list_groups[$loop]["cn"]) ) { 164 $classe[$j]["cn"] = $list_groups[$loop]["cn"]; 165 $classe[$j]["description"] = $list_groups[$loop]["description"]; 166 //echo " Classe<br />"; 167 $j++; 168 // Equipe 169 } elseif ( preg_match ("#Equipe_#", $list_groups[$loop]["cn"]) ) { 170 $equipe[$k]["cn"] = $list_groups[$loop]["cn"]; 171 $equipe[$k]["description"] = $list_groups[$loop]["description"]; 172 //echo " Equipe<br />"; 173 $k++; 174 // Matiere 175 } elseif ( preg_match ("#Matiere_#", $list_groups[$loop]["cn"]) ) { 176 $matiere[$l]["cn"] = $list_groups[$loop]["cn"]; 177 $matiere[$l]["description"] = $list_groups[$loop]["description"]; 178 //echo " Matiere<br />"; 179 $l++; 180 // Autres 181 //} elseif ( !ereg( "^(Administratifs)|(Eleves)|(lcs-users)|(machines)|(overfil)|(Profs)$",$list_groups[$loop]["cn"] ) ) { 182 } elseif ( !preg_match( "#(^Administratifs$)|(^Eleves$)|(^lcs-users$)|(^machines$)|(^overfill$)|(^Profs$)#",$list_groups[$loop]["cn"] ) ) { 183 $autres[$m]["cn"] = $list_groups[$loop]["cn"]; 184 $autres[$m]["description"] = $list_groups[$loop]["description"]; 185 //echo " Autres<br />"; 186 $m++; 187 } 188 /* 189 else { 190 echo " ???<br />"; 191 } 192 */ 193 } else { 194 // Cours 195 if ( preg_match ("#Cours_#", $list_groups[$loop]["cn"]) && preg_match("#$filtre#i",$list_groups[$loop]["cn"])) { 196 $cours[$i]["cn"] = $list_groups[$loop]["cn"]; 197 $cours[$i]["description"] = $list_groups[$loop]["description"]; 198 $i++; 199 // Classe 200 } elseif ( preg_match ("#Classe_#", $list_groups[$loop]["cn"]) && preg_match("#$filtre#i",$list_groups[$loop]["cn"]) ) { 201 $classe[$j]["cn"] = $list_groups[$loop]["cn"]; 202 $classe[$j]["description"] = $list_groups[$loop]["description"]; 203 $j++; 204 // Equipe 205 } elseif ( preg_match ("#Equipe_#", $list_groups[$loop]["cn"])&& preg_match("#$filtre#i",$list_groups[$loop]["cn"]) ) { 206 $equipe[$k]["cn"] = $list_groups[$loop]["cn"]; 207 $equipe[$k]["description"] = $list_groups[$loop]["description"]; 208 $k++; 209 // Matiere 210 } elseif ( preg_match ("#Matiere_#", $list_groups[$loop]["cn"])&& preg_match("#$filtre#i",$list_groups[$loop]["cn"]) ) { 211 $matiere[$l]["cn"] = $list_groups[$loop]["cn"]; 212 $matiere[$l]["description"] = $list_groups[$loop]["description"]; 213 $l++; 214 // Autres 215 } elseif((!preg_match( "/^(Administratifs)|(Eleves)|(lcs-users)|(machines)|(overfil)|(Profs)$/",$list_groups[$loop]["cn"]))&& 216 (!preg_match("/^(Cours_)|(Classe_)|(Equipe_)|(Matiere_)/",$list_groups[$loop]["cn"]))&& 217 (preg_match("#$filtre#i",$list_groups[$loop]["cn"])) 218 ) { 219 $autres[$m]["cn"] = $list_groups[$loop]["cn"]; 220 $autres[$m]["description"] = $list_groups[$loop]["description"]; 221 $m++; 222 } 223 } 224 } 225 226 227 // Affichage des boites de selection des nouveaux groupes secondaires 228 ?> 229 230 <h4><?php echo gettext("Ajouter aux groupes secondaires :"); ?></h4> 231 <?php echo gettext("Attention : Filtrage des groupes secondaires en bas de page !"); ?> 232 233 <table border="0" cellspacing="10"> 234 <thead> 235 <tr> 236 <?php 237 if ( $categorie == "Eleves" ) { 238 echo "<td>".gettext("Classes")."</td>"; 239 } else { echo "<td>".gettext("Matieres")."</td>"; } 240 241 echo "<td>".gettext("Cours")."</td>"; 242 if ( $categorie != "Eleves" ) { 243 echo "<td>".gettext("Equipes")."</td>"; } 244 ?> 245 <td><?php echo gettext("Autres"); ?></td> 246 </tr> 247 </thead> 248 <tbody> 249 <tr> 250 <td valign="top"> 251 <?php 252 if ( $categorie == "Eleves" ) { 253 echo "<select name= \"classe_gr[]\" size=\"10\" multiple=\"multiple\">\n"; 254 for ($loop=0; $loop < count ($classe) ; $loop++) { 255 echo "<option value=".$classe[$loop]["cn"].">".$classe[$loop]["cn"]; 256 } 257 } else { 258 echo "<select name= \"matiere_gr[]\" size=\"10\" multiple=\"multiple\">\n"; 259 for ($loop=0; $loop < count ($matiere) ; $loop++) { 260 echo "<option value=".$matiere[$loop]["cn"].">".$matiere[$loop]["cn"]; 261 } 262 } 263 ?> 264 </select> 265 </td> 266 <td valign="top"> 267 <select name= "<?php echo "cours_gr[]"; ?>" size="10" multiple="multiple"> 268 <?php 269 for ($loop=0; $loop < count ($cours) ; $loop++) { 270 echo "<option value=".$cours[$loop]["cn"].">".$cours[$loop]["cn"]; 271 } 272 ?> 273 </select> 274 </td> 275 <?php 276 if ( $categorie == "Profs" || $categorie == "Administratifs" || !$categorie) { 277 echo "<td>\n"; 278 echo "<select name= \"equipe_gr[]\" size=\"10\" multiple=\"multiple\">\n"; 279 for ($loop=0; $loop < count ($equipe) ; $loop++) { 280 echo "<option value=".$equipe[$loop]["cn"].">".$equipe[$loop]["cn"]; 281 } 282 echo "</select></td>\n"; 283 } 284 ?> 285 <td valign="top"> 286 <select name= "<?php echo "autres_gr[]"; ?>" size="5" multiple="multiple"> 287 <?php 288 for ($loop=0; $loop < count ($autres) ; $loop++) { 289 echo "<option value=".$autres[$loop]["cn"].">".$autres[$loop]["cn"]; 290 } 291 ?> 292 </select> 293 </td> 294 </tr> 295 <tr> 296 <td> 297 <input type="reset" value="<?php echo gettext("Réinitialiser la sélection"); ?>"> 298 </td> 299 <?php } else { ?> 300 <table> 301 <tr> 302 <?php } ?> 303 <td > 304 <input type="hidden" name="categorie" value="<?php echo $categorie ?>"> 305 <input type="hidden" name="add_user_group" value="true"> 306 <input type="submit" value="<?php echo gettext("Lancer la requête"); ?>"> 307 </td> 308 </tr> 309 </table> 310 </form> 311 312 <?php 313 //echo "<FORM action=\"add_user_group.php?uid=$uid&filtre=$filtre\" method=\"post\">\n"; 314 echo "<FORM action=\"add_user_group.php?uid=$uid\" method=\"post\">\n"; 315 echo "<P>".gettext("Filtrer les groupes secondaires contenant :"); 316 echo "<INPUT TYPE=\"text\" NAME=\"filtre\"\n VALUE=\"$filtre\" SIZE=\"16\">"; 317 echo " "; 318 echo "<input type=\"submit\" value=\"".gettext("Filtrer")."\">\n"; 319 echo "</P></FORM>\n"; 320 321 } else { 322 // Reaffectation de l'utilisateur dans une nouvelle categorie 323 if ( $categorie && ($categorie != $new_categorie) ) { 324 // Suppression de l'utilisateur de la categorie $categorie 325 exec ("/usr/share/se3/sbin/groupDelUser.pl $uid $categorie",$AllOutPut,$ReturnValue0); 326 // Affectation de l'utilisateur a la categorie $new_categorie 327 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $new_categorie" ,$AllOutPut,$ReturnValue1); 328 if ( $ReturnValue0==0 && $ReturnValue1==0) { 329 echo gettext("L'utilisateur")." <a href='add_user_group.php?uid=$uid'>$uid</a> ".gettext("a été réaffecté de la catégorie")." <b>$categorie</b> ".gettext("à la catégorie")." <b>$new_categorie</b>.</BR></BR>\n"; 330 } else { 331 echo "<br>"; 332 echo "<div class=error_msg>".gettext("La réaffectation de catégorie ")." $categorie ".gettext("vers")." $new_categorie ".gettext(" de l'utilisateur "); 333 echo "<font color='#0080ff'>$uid</font> ".gettext(" à échouée.<br> veuillez contacter")." <A HREF='mailto:$MelAdminLCS?subject=PB ".gettext("Reaffectation categorie")." $categorie ".gettext("vers")." $new_categorie ".gettext("de")." $uid'>".gettext("l'administrateur du système")."</A></div><BR>\n"; 334 } 335 } elseif (!$categorie && $new_categorie ) { 336 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $new_categorie" ,$AllOutPut,$ReturnValue); 337 if ( $ReturnValue==0 ) { 338 echo gettext("L'utilisateur")." <a href='people.php?uid=$uid'>$uid </a>".gettext(" a été affecté à la catégorie")." <b>$new_categorie</b>.</BR></BR>\n"; 339 } else { 340 echo "<div class=error_msg>"; 341 echo gettext("L'affectation à la catégorie")." $new_categorie ".gettext(" de l'utilisateur"); 342 echo "<font color='#0080ff'>$uid</font>".gettext(" a échouée, veuillez contacter")." <A HREF='mailto:$MelAdminLCS?subject=PB ".gettext("Affectation categorie")." $new_categorie ".gettext("de")." $uid'>".gettext("l'administrateur du système")."</A></div><BR>\n"; 343 } 344 } 345 346 // Ajout des groupes secondaires 347 // Classe 348 echo "<br>"; 349 echo gettext("L'utilisateur")." <a href='people.php?uid=$uid'>$uid</a> "; 350 if (count($classe_gr) > 0 || count($matiere_gr) > 0 || count($cours_gr) > 0 || count($equipe_gr) > 0 || count($autres_gr) > 0 ) 351 echo gettext("a été ajouté dans les")." <a href='add_user_group.php?uid=$uid'>".gettext("groupes secondaires")."</a> :<BR>"; 352 else echo gettext("n'a été ajouté dans aucun")." <a href='add_user_group.php?uid=$uid'>".gettext("groupe secondaire")."</a>.<BR>"; 353 354 if (count($classe_gr) ) { 355 for ($loop=0; $loop < count ($classe_gr) ; $loop++) { 356 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $classe_gr[$loop]" ,$AllOutPut,$ReturnValue); 357 echo $classe_gr[$loop]." "; 358 if ($ReturnValue == 0 ) { 359 echo "<stong><strong>".gettext("Réussi")."</strong></strong><BR>"; 360 } else { echo "<font color=\"orange\">".gettext("Echec")."</font><BR>"; $err++; } 361 } 362 } 363 364 // Matiere 365 if (count($matiere_gr) ) { 366 for ($loop=0; $loop < count ($matiere_gr) ; $loop++) { 367 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $matiere_gr[$loop]" ,$AllOutPut,$ReturnValue); 368 echo $matiere_gr[$loop]." "; 369 if ($ReturnValue == 0 ) { 370 echo "<strong>".gettext("Réussi")."</strong><BR>"; 371 } else { echo "</strong><font color=\"orange\">".gettext("Echec")."</font></strong><BR>"; $err++; } 372 } 373 } 374 375 // Cours 376 if (count($cours_gr) ) { 377 for ($loop=0; $loop < count ($cours_gr) ; $loop++) { 378 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $cours_gr[$loop]" ,$AllOutPut,$ReturnValue); 379 echo $cours_gr[$loop]." "; 380 if ($ReturnValue == 0 ) { 381 echo "<strong>".gettext("Réussi")."</strong><BR>"; 382 } else { echo "</strong><font color=\"orange\">".gettext("Echec")."</font></strong><BR>"; $err++; } 383 } 384 } 385 386 // Equipe 387 if (count($equipe_gr) ) { 388 for ($loop=0; $loop < count ($equipe_gr) ; $loop++) { 389 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $equipe_gr[$loop]" ,$AllOutPut,$ReturnValue); 390 echo $equipe_gr[$loop]." "; 391 if ($ReturnValue == 0 ) { 392 echo "<strong>".gettext("Réussi")."</strong><BR>"; 393 } else { echo "</strong><font color=\"orange\">".gettext("Echec")."</font></strong><BR>"; $err++; } 394 } 395 } 396 397 // Autres 398 if (count($autres_gr) ) { 399 for ($loop=0; $loop < count ($autres_gr) ; $loop++) { 400 exec("/usr/share/se3/sbin/groupAddUser.pl $uid $autres_gr[$loop]" ,$AllOutPut,$ReturnValue); 401 echo $autres_gr[$loop]." "; 402 if ($ReturnValue == 0 ) { 403 echo "<strong>".gettext("Réussi")."</strong><BR>"; 404 } else { echo "</strong><font color=\"orange\">".gettext("Echec")."</font></strong><BR>"; $err++; } 405 } 406 } 407 408 // Compte rendu de la page remplacant.php (ajout aux groupes du prof remplacé) 409 if ($remplacant=="true") { 410 411 // Prepositionnement variables 412 $mono_srv = false; 413 $multi_srv = false; 414 // Recherche de la nature mono ou multi serveur de la plateforme SE3 415 $master=search_machines ("(l=maitre)", "computers"); 416 $slaves= search_machines ("(l=esclave)", "computers"); 417 if ( count($master) == 0 ) { 418 echo "<P>".gettext("ERREUR : Il n'y a pas de serveur maitre déclaré dans l'annuaire ! <BR>Veuillez contacter le super utilisateur du serveur SE3.")."</P>"; 419 } elseif ( count($master) == 1 && count($slaves) == 0 ) { 420 // Plateforme mono-serveur 421 $mono_srv = true; 422 } elseif ( count($master) == 1 && count($slaves) > 0 ) { 423 $multi_srv = true; 424 } // Fin Recherche de la nature mono ou multi serveur de la plateforme SE3 425 if ($mono_srv == "true") { 426 echo "<BR>".gettext(" Le rafraichissement des classes n'est plus nécessaire depuis la version 1.13 de SAMBAEDU. Le professeur a automatiquement les droits sur les dossiers Classes."); 427 } 428 if ($multi_srv == "true") { 429 echo "<BR>".gettext(" N'oubliez pas de")." <A HREF=\"../partages/synchro_folders_classes.php\">".gettext("rafraichir les classes")." </A>".gettext("pour attribuer les ACLS")."<BR>."; 430 } 431 } 432 if ((isset($err))&&($err)) { 433 echo "<div class=error_msg>"; 434 echo gettext("Veuillez contacter")."<A HREF='mailto:$MelAdminLCS?subject=PB".gettext("Affectation de")." $uid ".gettext(" a des groupes secondaires !")."'>".gettext("l'administrateur du système")."</A> 435 </div><BR>\n"; 436 } 437 } 438 } else { 439 echo "<div class=error_msg>".gettext("Cette application, nécessite les droits d'administrateur du serveur LCS !")."</div>"; 440 } 441 442 include ("pdp.inc.php"); 443 ?>
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Tue Mar 17 22:47:18 2015 | Cross-referenced by PHPXref 0.7.1 |