[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 4 /** 5 6 * Ajoute des utilisateurs dans l'annuaire 7 * @Version $Id: add_user.php 8600 2015-03-16 20:12:30Z plouf $ 8 9 * @Projet LCS / SambaEdu 10 11 * @auteurs jLCF jean-luc.chretien@tice.ac-caen.fr 12 * @auteurs oluve olivier.le_monnier@crdp.ac-caen.fr 13 * @auteurs wawa olivier.lecluse@crdp.ac-caen.fr 14 * @auteurs Equipe Tice academie de Caen 15 16 * @Licence Distribue selon les termes de la licence GPL 17 18 * @note Modifie par Adrien CRESPIN -- Lycee Suzanne Valadon 19 */ 20 21 /** 22 23 * @Repertoire: annu 24 * file: add_user.php 25 */ 26 27 28 29 require "config.inc.php"; 30 require "functions.inc.php"; 31 32 // HTMLPurifier 33 require_once ("traitement_data.inc.php"); 34 35 $login=isauth(); 36 if ($login == "") header("Location:$urlauth"); 37 38 require "ldap.inc.php"; 39 require "ihm.inc.php"; 40 require "jlcipher.inc.php"; 41 42 require_once ("lang.inc.php"); 43 bindtextdomain('se3-annu',"/var/www/se3/locale"); 44 textdomain ('se3-annu'); 45 46 47 header_crypto_html("Creation utilisateur","../"); 48 echo "<h1>".gettext("Annuaire")."</h1>\n"; 49 50 @session_start(); 51 $_SESSION["pageaide"]="Annuaire"; 52 aff_trailer ("7"); 53 54 if (!isset($_SESSION['comptes_crees'])) { 55 $_SESSION['comptes_crees'] = array(array()) ; // un sous-tableau par compte ; le deuxième tavbleau est, dans l'ordre nom, prenom, classe (?? en fait, non) (ou 'prof'), uid, password 56 array_splice($_SESSION['comptes_crees'], 0, 1); 57 } 58 59 $nom=isset($_POST['nom']) ? $_POST['nom'] : (isset($_GET['nom']) ? $_GET['nom'] : ""); 60 $prenom=isset($_POST['prenom']) ? $_POST['prenom'] : (isset($_GET['prenom']) ? $_GET['prenom'] : ""); 61 $naissance=isset($_POST['naissance']) ? $_POST['naissance'] : (isset($_GET['naissance']) ? $_GET['naissance'] : ""); 62 $userpw=isset($_POST['userpw']) ? $_POST['userpw'] : ""; 63 $sexe=isset($_POST['sexe']) ? $_POST['sexe'] : (isset($_GET['sexe']) ? $_GET['sexe'] : ""); 64 $categorie=isset($_POST['categorie']) ? $_POST['categorie'] : ""; 65 $add_user=isset($_POST['add_user']) ? $_POST['add_user'] : ""; 66 $string_auth=isset($_POST['string_auth']) ? $_POST['string_auth'] : ""; 67 $string_auth1=isset($_POST['string_auth1']) ? $_POST['string_auth1'] : ""; 68 $dummy=isset($_POST['dummy']) ? $_POST['dummy'] : ""; 69 $dummy1=isset($_POST['dummy1']) ? $_POST['dummy1'] : ""; 70 71 72 if (is_admin("Annu_is_admin",$login)=="Y") { 73 if ( $add_user && ($string_auth || $string_auth1) ) { 74 exec ("/usr/bin/python ".$path_to_wwwse3."/includes/decode.py '$string_auth'",$Res); 75 $naissance = $Res[0]; 76 exec ("/usr/bin/python ".$path_to_wwwse3."/includes/decode.py '$string_auth1'",$Res1); 77 if(isset($Res1[0])) {$userpwd = $Res1[0];} else {$userpwd=false;} 78 } 79 // Ajout d'un utilisateur 80 if ( (!isset($_POST['add_user'])) 81 || ( !$nom || !$prenom ) // absence de nom ou de prenom 82 || ( $userpwd && !verifPwd($userpwd) ) // mot de passe invalide 83 || ( $naissance && !verifDateNaissance($naissance) ) // date de naissance invalide 84 || ( ($naissance && verifDateNaissance($naissance)) && ($userpwd && !verifPwd($userpwd)) ) // date de naissance mais password invalide 85 // || ($userpwd && !verifPwd($userpwd) ) // password invalide 86 ) { 87 ?> 88 <form name = "auth" action="add_user.php" method="post" onSubmit = "encrypt(document.auth)"> 89 <table border="0"> 90 <tbody> 91 <tr> 92 <td><?php echo gettext("Nom :"); ?></td> 93 <td colspan="2" valign="top"><input type="sn" name="nom" value="<?php echo $nom ?>" size="20"></td> 94 95 </tr> 96 <tr> 97 <td><?php echo gettext("Prénom :"); ?></td> 98 <td colspan="2" valign="top"><input type="cn" name="prenom" value="<?php echo $prenom ?>" size="20"></td> 99 100 </tr> 101 <tr> 102 <td><?php echo gettext("Date de naissance :"); ?></td> 103 <td> 104 <input type="texte" name="dummy" value="<?php echo $naissance ?>" size="8"> 105 <input type="hidden" name="string_auth" value=""> 106 </td> 107 <td> 108 <font color="#FF9900"> 109 <?php echo gettext("(YYYYMMDD) ce champ est optionnel."); ?> 110 </font> 111 </td> 112 </tr> 113 <tr> 114 <td><?php echo gettext("Mot de passe :"); ?></td> 115 <td> 116 <input type= "password" value="" name="dummy1" size='8' maxlength='8'> 117 <input type="hidden" name="string_auth1" value=""> 118 </td> 119 <td> 120 <font color="#FF9900"> 121 <?php echo gettext("ce champ est optionnel"); ?> 122 </font> 123 </td> 124 </tr> 125 <tr> 126 <td colspan="3" valign="top"> 127 <?php 128 echo '<blockquote><font color="#FF9900">'; 129 echo gettext('Si le champ mot de passe est laissé vide, un mot de passe sera créé selon la politique de mot de passe par défaut qui est définie à : '); 130 switch ($pwdPolicy) { 131 case 0: // date de naissance 132 echo gettext("date de naissance (YYYYMMDD)"); 133 echo gettext("<br />Si ni la date de naissance ni le mot de passe ne sont renseignées, un mot de passe semi-aléatoire sera généré"); 134 break; 135 case 1: // semi-aleatoire 136 echo gettext("semi-aléatoire (6 car.)"); 137 break; 138 case 2: // aleatoire 139 echo gettext("aléatoire (8 car.)"); 140 break; 141 } 142 echo '</font></blockquote>'; 143 144 ?> 145 </td> 146 <tr> 147 <td><?php echo gettext("Sexe :"); ?></td> 148 <td colspan="2"> 149 <img src="images/gender_girl.gif" alt="Féminin" width="14" height="14" hspace="4" border="0"> 150 <?php 151 echo "<input type=\"radio\" name=\"sexe\" value=\"F\""; 152 if (($sexe=="F")||(!$add_user)) echo " checked"; 153 echo "> \n"; 154 ?> 155 <img src="images/gender_boy.gif" alt="Masculin" width=14 height=14 hspace=4 border=0> 156 <?php 157 echo "<input type=\"radio\" name=\"sexe\" value=\"M\""; 158 if ($sexe=="M") echo " checked"; 159 echo "> \n"; 160 ?> 161 </td> 162 </tr> 163 <tr> 164 <td><?php echo gettext("Catégorie"); ?></td> 165 <td colspan="2" valign="top"> 166 <select name="categorie"> 167 <?php 168 echo "<option value=\"Eleves\""; 169 if ($categorie == "Eleves" ) echo "SELECTED"; 170 echo ">".gettext("Elèves")."</option>\n"; 171 echo "<option value=\"Profs\""; 172 if ($categorie == "Profs" ) echo "SELECTED"; 173 echo ">".gettext("Profs")."</option>\n"; 174 echo "<option value=\"Administratifs\""; 175 if ($categorie == "Administratifs" ) echo "SELECTED"; 176 echo ">".gettext("Administratifs")."</option>\n"; 177 ?> 178 </select> 179 </td> 180 </tr> 181 182 <tr> 183 <td><label for='checkbox_create_home'><?php echo gettext("Créer le dossier personnel immédiatement"); ?></label></td> 184 <td colspan="2" valign="top"> 185 <input type='checkbox' id='checkbox_create_home' name='create_home' value='y' /> 186 </td> 187 </tr> 188 189 <tr> 190 <td></td> 191 <td></td> 192 <td > 193 <input type="hidden" name="add_user" value="true"> 194 <input type="submit" value="<?php echo gettext("Lancer la requête"); ?>"> 195 </td> 196 </tr> 197 </tbody> 198 </table> 199 </form> 200 <?php 201 crypto_nav("../"); 202 if ($add_user) { 203 if ( (!$nom)||(!$prenom)) { 204 echo "<div class=error_msg>".gettext("Vous devez obligatoirement renseigner les champs : nom, prénom !")."</div><br>\n"; 205 } elseif ( !$naissance && !$userpwd ) { 206 echo "<div class='error_msg'>"; 207 echo gettext("Vous devez obligatoirement renseigner un des deux champs �mot de passe� ou �date de naissance�."); 208 echo "</div><BR>\n"; 209 } else { 210 if ( ($userpwd) && !verifPwd($userpwd) ){ 211 echo "<div class='error_msg'>"; 212 echo gettext("Vous devez proposer un mot de passe d'une longueur comprise entre 4 et 8 caractères 213 alphanumériques avec obligatoirement un des caractères spéciaux suivants")." ".$char_spec." ".gettext("ou à défaut laisser le champ mot de passe vide et dans ce cas un mot de passe sera créé.")." 214 </div><BR>\n"; 215 } 216 if ( ($naissance) && !verifDateNaissance($naissance) ){ 217 echo "<div class='error_msg'>"; 218 echo gettext("Le champ date de naissance doit être obligatoirement au format AnnéeMoisJour (YYYYMMDD)."); 219 echo "</div><BR>\n"; 220 } 221 } 222 } 223 224 } else { 225 // Verification si ce nouvel utilisateur n'existe pas deja 226 $prenom = stripslashes($prenom); $nom = stripslashes($nom); 227 // suppression des apostrophes - tant pis pour la noblesse 228 $prenom = str_replace("'", "", $prenom); 229 $nom = str_replace("'", "", $nom); 230 231 $cn =utf8_encode($prenom." ".$nom); 232 $people_exist=search_people("(cn=$cn)"); 233 234 if (count($people_exist)) { 235 echo "<div class='error_msg'>"; 236 echo gettext("Echec de création : L'utilisateur")." <font color=\"black\"> $prenom $nom</font>".gettext(" est déja présent dans l'annuaire."); 237 echo "</div><BR>\n"; 238 } else { 239 switch ($pwdPolicy) { 240 case 0: // date de naissance 241 if ((!$naissance) && (!$userpwd) ) { 242 exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); 243 $userpwd=$out[0]; 244 $naissance="00000000"; 245 } else { 246 if (!$userpwd) $userpwd=$naissance; 247 } 248 break; 249 case 1: // semi-aleatoire 250 if (!$naissance ) $naissance="00000000"; 251 if (!$userpwd) { 252 exec("/usr/share/se3/sbin/gen_pwd.sh -s", $out); 253 $userpwd=$out[0]; 254 } 255 break; 256 case 2: // aleatoire 257 if (!$naissance ) $naissance="00000000"; 258 if (!$userpwd) { 259 exec("/usr/share/se3/sbin/gen_pwd.sh -a", $out); 260 $userpwd=$out[0]; 261 } 262 break; 263 } 264 265 // Creation du nouvel utilisateur 266 //echo "<pre>/usr/share/se3/sbin/userAdd.pl \"$prenom\" \"$nom\" \"$userpwd\" \"$naissance\" \"$sexe\" \"$categorie\"</pre>"; 267 exec ("/usr/share/se3/sbin/userAdd.pl \"$prenom\" \"$nom\" \"$userpwd\" \"$naissance\" \"$sexe\" \"$categorie\"",$AllOutPut,$ReturnValue); 268 // Compte rendu de creation 269 if ($ReturnValue == "0") { 270 if($sexe=="M"){ 271 echo gettext("L'utilisateur ")." $prenom $nom ".gettext(" a été créé avec succès.")."<BR>"; 272 } else { 273 echo gettext("L'utilisateur ")." $prenom $nom ".gettext(" a été créée avec succès.")."<BR>"; 274 } 275 $users = search_people ("(cn=$cn)"); 276 if ( count ($users) ) { 277 echo gettext("Son identifiant est ")."<STRONG><a href='people.php?uid=".$users[0]["uid"]."' title=\"Modifier le compte.\">".$users[0]["uid"]."</a></STRONG><BR>\n"; 278 echo gettext("Son mot de passe est ")."<STRONG>".$userpwd."</STRONG><BR>\n"; 279 $nouveau = array('nom'=>"$nom", 'pre'=>"$prenom", 'uid'=>$users[0]["uid"], 'pwd'=>"$userpwd"); 280 $_SESSION['comptes_crees'][]=$nouveau; 281 echo "<LI><A HREF=\"add_user_group.php?uid=".$users[0]["uid"]."\">".gettext("Ajouter à des groupes...")."</A>\n"; 282 } 283 284 if((isset($_POST['create_home']))&&($_POST['create_home']=='y')) { 285 echo "<p><b>Création du dossier personnel de ".$users[0]["uid"]."</b><br />"; 286 exec("sudo /usr/share/se3/shares/shares.avail/mkhome.sh ".$users[0]["uid"],$ReturnValue2); 287 echo "<pre style='color:red'>"; 288 foreach($ReturnValue2 as $key => $value) { 289 echo "$value"; 290 } 291 echo "</pre>\n"; 292 } 293 294 } else { 295 echo "<div class='error_msg'>".gettext("Erreur lors de la création du nouvel utilisateur")." $prenom $nom 296 <font color='black'>(".gettext("type d'erreur :")." $ReturnValue) 297 </font>,".gettext(" veuillez contacter")." 298 <a href='mailto:$MelAdminLCS?subject=PB creation nouvel utilisateur Se3'>".gettext("l'administrateur du système")."</a></div><br />\n"; 299 echo "<p><br /></p>\n"; 300 echo "<p><em>NOTES :</em> A propos des erreurs, une erreur 255 peut apparaître quand on tente d'ajouter un utilisateur toto (<em>qui n'existait pas dans la branche People</em>), alors qu'un toto existait dans un groupe (<em>Eleves, Profs ou Administratifs</em>).</p>\n"; 301 } 302 } 303 } 304 305 include("listing.inc.php"); 306 307 } else { 308 echo "<div class=error_msg>".gettext("Cette application, nécessite les droits d'administrateur du serveur SambaEdu !")."</div>"; 309 } 310 311 include ("pdp.inc.php"); 312 ?>
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 |