".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"]);
?>
".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");
?>