".gettext("Annuaire")."\n"; aff_trailer ("4"); $isadmin=is_admin("Annu_is_admin",$login); $uid=isset($_GET['uid']) ? $_GET['uid'] : (isset($_POST['uid']) ? $_POST['uid'] : NULL); if(!isset($uid)) { echo "

Erreur : Aucun utilisateur n'a été choisi.

\n", include ("pdp.inc.php"); die(); } //debug_var(); $user_entry=isset($_POST['user_entry']) ? $_POST['user_entry'] : ''; $telephone=isset($_POST['telephone']) ? $_POST['telephone'] : ''; $nom=isset($_POST['nom']) ? $_POST['nom'] : ''; $prenom=isset($_POST['prenom']) ? $_POST['prenom'] : ''; $description=isset($_POST['description']) ? $_POST['description'] : ''; $userpwd=isset($_POST['userpwd']) ? $_POST['userpwd'] : ''; $mail=isset($_POST['mail']) ? $_POST['mail'] : ''; $shell=isset($_POST['shell']) ? $_POST['shell'] : ''; $password=isset($_POST['password']) ? $_POST['password'] : ''; $string_auth=isset($_POST['string_auth']) ? $_POST['string_auth'] : ''; $naissance=isset($_POST['naissance']) ? $_POST['naissance'] : ''; $employeeNumber=isset($_POST['employeeNumber']) ? $_POST['employeeNumber'] : ''; if (($isadmin=="Y") or ((tstclass($login,$uid)==1) and (ldap_get_right("sovajon_is_admin",$login)=="Y"))) { // Recuperation des entrees de l'utilisateur a modifier $user=people_get_variables ($uid, false); // decodage du mot de passe if ((isset($user_entry))&&($user_entry)&&($string_auth!='')) { // decryptage des mdp exec ("/usr/bin/python ".$path_to_wwwse3."/includes/decode.py '$string_auth'",$Res); $userpwd = $Res[0]; } // Modification des entrees //if (!isset($user_entry) || !verifTel($telephone) || !verifEntree($nom) || !verifEntree($prenom) || !verifDescription($description) || ($userpwd && !verifPwd($userpwd)) ) { /* if (!verifTel($telephone)) { echo "ERREUR tel
"; } if (!verifEntree($nom)) { echo "ERREUR nom
"; } if (!verifEntree($prenom)) { echo "ERREUR prenom
"; } if (!verifDescription($description)) { echo "ERREUR description
"; } if (!verifDateNaissance($naissance)) { echo "ERREUR naissance
"; } if (!verifPwd($userpwd)) { echo "ERREUR pwd
"; } */ $info_employeeNumber=""; if($employeeNumber!='') { $tmp_tab=verif_employeeNumber($employeeNumber); if(($tmp_tab)&&(count($tmp_tab)>0)) { if($tmp_tab[0]!=$uid) { $info_employeeNumber="Le numéro $employeeNumber est déjá attribué á ".$tmp_tab[0]." dans la branche ".$tmp_tab[-1]."
"; } } } $employeeNumber0=$employeeNumber; $employeeNumber=preg_replace("/[^0-9A-Za-z]/","",$employeeNumber); if($employeeNumber!=$employeeNumber0) { $info_employeeNumber.="Un ou des caractères non valides ont été saisis dans le numéro '$employeeNumber0'"; } if (!isset($user_entry) || !verifTel($telephone) || !verifEntree($nom) || !verifEntree($prenom) || !verifDescription($description) || ($userpwd && !verifPwd($userpwd)) || (($naissance!='')&&(!verifDateNaissance($naissance))) || ($info_employeeNumber!="")) { // Quand la migration givenName<-Prenom et seeAlso<-pseudo sera effectuee, on pourra modifier ci-dessous: $user[0]["prenom"]=getprenom($user[0]["fullname"],$user[0]["nom"]); ?>
Login : 
" size="20">
 :  " size="20">
 : 
 :  :C'est ce numéro qui est utilisé lors d'un import des comptes pour déterminer si le compte existe déjá ou non.
Ne le changez pas sans bonne raison."); ?>
 :  " size="20">
Shell  :
" size="10">
:
">
".gettext("Les champs nom et prenom, doivent comporter au minimum 3 caractères alphabétiques.")."
\n"; } // profil if ( $description && !verifDescription($description) ) { echo "
".gettext("Veuillez reformuler le champ description.")."

\n"; } // tel if ( $telephone && !verifTel($telephone) ) { echo "
".gettext("Le numéro de téléphone que vous avez saisi, n'est pas conforme.")."

\n"; } // Date de naissance if ($naissance!='' && !verifDateNaissance($naissance)) { echo "
".gettext("La date de naissance que vous avez saisie, n'est pas conforme.")."

\n"; } // mot de passe if ( $userpwd && !verifPwd($userpwd) ) { echo "
"; echo gettext("Vous devez proposer un mot de passe d'une longueur comprise entre 4 et 8 caractères alphanumériques avec obligatoirement un des caractères spéciaux suivants"); echo " ($char_spec)

\n"; } if($info_employeeNumber!="") { echo "
".gettext("$info_employeeNumber.")."

\n"; } // fin verification des saisies } echo "

Retour sans modification vers la fiche de $uid

\n"; } else { // Positionnement des entrees a modifier //$entry["sn"] = stripslashes ( utf8_encode($nom) ); //$entry["cn"] = stripslashes ( utf8_encode($prenom)." ".utf8_encode($nom) ); $entry["sn"] = stripslashes ( ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$nom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))) ); $entry["cn"] = stripslashes ( ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz")))." ".ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$nom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))) ); //====================================== // Correction du gecos: //echo "\$user[0][\"gecos\"]=".$user[0]["gecos"]."
"; if($user[0]["gecos"]!="") { $tab_gecos=explode(",",$user[0]["gecos"]); //$entry["gecos"]=ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom"))))," 'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","__AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz")))." ".ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$nom"))))," 'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","__AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))).",".$tab_gecos[1].",".$tab_gecos[2].",".$tab_gecos[3]; $entry["gecos"]=ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz")))." ".ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$nom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))).",".$tab_gecos[1].",".$tab_gecos[2].",".$tab_gecos[3]; } if($corriger_givenname_si_diff=="y") { // Ajout: crob 20080611 // Variable initialisée dans includes/ldap.inc.php: $corriger_givenname_si_diff // placée pour permettre de désactiver temporairement cette partie // Le givenName est destiné à prendre pour valeur le Prenom de l'utilisateur //$entry["givenName"] = ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom"))))," 'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","__AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))); $entry["givenName"] = ucfirst(strtolower(strtr(preg_replace("/Æ/","AE",preg_replace("/æ/","ae",preg_replace("/¼/","OE",preg_replace("/½/","oe","$prenom")))),"'ÂÄÀÁÃÄÅÇÊËÈÉÎÏÌÍÑÔÖÒÓÕ¦ÛÜÙÚݾ´áàâäãåçéèêëîïìíñôöðòóõ¨ûüùúýÿ¸","_AAAAAAACEEEEIIIINOOOOOSUUUUYYZaaaaaaceeeeiiiinoooooosuuuuyyz"))); } // Il faudrait aussi corriger le gecos et pour cela récupérer le sexe et la date de naissance // On ne les trouve que dans le gecos ici. // Et le gecos n'est pas récupéré avec $user=people_get_variables ($uid, false); // Et on récupère un $user[0][pseudo] <- givenName /* echo "

Valeur des attributs avant modification:
"; foreach($user[0] as $key => $value) { echo "\$user[0][$key]=$value
"; } */ // La fonction people_get_variables() est utilisée dans pas mal de pages modifier le retour si givenName prend pour valeur Prenom va être lourd. //====================================== if ( $isadmin=="Y" ) { $entry["loginshell"] = $shell; // Modification du homeDirectory if ( $shell == "/usr/lib/sftp-server" ) $entry["homedirectory"] = "/home/".$user[0]["uid"]."/./"; else $entry["homedirectory"] = "/home/".$user[0]["uid"]; if ( $mail != "" ) $entry["mail"] = $mail; if ( $telephone && verifTel($telephone) ) $entry["telephonenumber"]=$telephone ; if ( $description && verifDescription($description) ) $entry["description"]=utf8_encode(stripslashes($description)); if ($naissance!='' && verifDateNaissance($naissance)) { if(isset($entry["gecos"])) { $tmp_tab=explode(",", $entry["gecos"]); if(isset($tmp_tab[3])) { $entry["gecos"]=$tmp_tab[0].",".$naissance.",".$tmp_tab[2].",".$tmp_tab[3]; } else { echo "

".gettext("L'attribut gecos n'est pas correctement renseigné.")."

\n"; } } } if($employeeNumber!="") {$entry["employeeNumber"] = $employeeNumber;} } // Modification des entrees $ds = @ldap_connect ( $ldap_server, $ldap_port ); if ( $ds ) { $r = @ldap_bind ( $ds, $adminDn, $adminPw ); // Bind en admin if ($r) { if (@ldap_modify ($ds, "uid=".$uid.",".$dn["people"],$entry)) { echo "".gettext("Les entrées ont été modifiées avec succès.")."
\n"; } else { echo "".gettext("Echec de la modification, veuillez contacter")." ".gettext("l'administrateur du système")."
\n"; } } @ldap_close ( $ds ); if((isset($user[0]["employeeNumber"]))&&($user[0]["employeeNumber"]!="")&&($employeeNumber=='')) { // Il faut vider l'employeeNumber $tab_attr=array(); $tab_attr["employeeNumber"]=$user[0]["employeeNumber"]; if(modify_attribut ("uid=".$uid, "people", $tab_attr, "del")) { echo "".gettext("L'employeeNumber a été correctement vidé.")."
\n"; } else { echo "".gettext("Echec de la modification de l'employeeNumber, veuillez contacter")." ".gettext("l'administrateur du système")."
\n"; } } } else { echo gettext("Erreur de connection à l'annuaire, veuillez contacter")." ".gettext("l'administrateur du systèmeadministrateur")."
\n"; } // Fin modification des entrees // Changement du mot de passe if ( $userpwd && verifPwd($userpwd) ) { userChangedPwd($uid, $userpwd); } echo "

Retour vers la modification des informations $uid

\n"; echo "

Retour vers la fiche de $uid

\n"; } } else { echo "
".gettext("Cette fonctionnalité nécessite des droits d'administration SambaEdu !")."
"; } include ("pdp.inc.php"); ?>