Ma problématique étant la suivante toutes les informations n'étant pas forcément toujours remplies dans le LDAP comme des mails, numéros, services ...
à chaque synchronisations les champs LDAP vides effaçaient les informations entrées manuellement d'où mes modifs suivantes dans /core/ldap.php pour tester si le champs est vide dans le LDAP avant écrasement de la donnée différente du LDAP.
ligne 207
Code : Tout sélectionner
if($g_firstname!=$givenname && $givenname!='')
Code : Tout sélectionner
if($g_lastname!=$sn && $sn!='')
Code : Tout sélectionner
if($g_mail!=$mail && $mail!='')
Code : Tout sélectionner
if($g_streetaddress!=$streetaddress && ($streetaddress!=''))
Code : Tout sélectionner
if($g_postalcode!=$postalcode && ($postalcode!=''))
Code : Tout sélectionner
if($g_l!=$l && $l!='' )
Code : Tout sélectionner
if($g_fax!=$fax && $fax!='' )
Code : Tout sélectionner
if($g_title!=$title && $title!='' )
Code : Tout sélectionner
if($company!=$g_company_name[0] && $company!='')
Code : Tout sélectionner
if($department!=$g_service_name[0] && $department!='')
Ou pour faire simple
ligne 207 à 331
Code : Tout sélectionner
if($g_firstname!=$givenname && $givenname!='')
{
$update="du prénom \"$givenname\"";
if($_GET['action']=='run') {
$givenname = $db->quote($givenname);
$db->exec("UPDATE tusers SET firstname=$givenname WHERE login='$samaccountname'");
}
}
if($g_lastname!=$sn && $sn!='')
{
$update="du nom \"$sn\"";
if($_GET['action']=='run') {
$sn = $db->quote($sn);
$db->exec("UPDATE tusers SET la35stname=$sn WHERE login='$samaccountname'");
}
}
if($g_mail!=$mail && $mail!='')
{
$update="de l'adresse mail \"$mail\"";
if($_GET['action']=='run') {
$db->exec("UPDATE tusers SET mail='$mail' WHERE login='$samaccountname'");
}
}
if(($g_telephonenumber=='') && ($telephonenumber!='')) //special case for no tel number in AD
{
$update="du numéro de téléphone \"$telephonenumber\" ";
if($_GET['action']=='run') {
$db->exec("UPDATE tusers SET phone='$telephonenumber' WHERE login='$samaccountname'");
}
}
if($g_streetaddress!=$streetaddress && ($streetaddress!=''))
{
$update="de l'adresse \"$streetaddress\" ";
if($_GET['action']=='run') {
$streetaddress = $db->quote($streetaddress);
$db->exec("UPDATE tusers SET address1=$streetaddress WHERE login='$samaccountname'");
}
}
if($g_postalcode!=$postalcode && ($postalcode!=''))
{
$update="du code postal \"$postalcode\" ";
if($_GET['action']=='run') {
$db->exec("UPDATE tusers SET zip='$postalcode' WHERE login='$samaccountname'");
}
}
if($g_l!=$l && $l!='' )
{
$update="de la ville \"$l\" ";
if($_GET['action']=='run') {
$l = $db->quote($l);
$db->exec("UPDATE tusers SET city=$l WHERE login='$samaccountname'");
}
}
if($g_fax!=$fax && $fax!='' )
{
$update="du FAX \"$fax\"";
if($_GET['action']=='run') {
$db->exec("UPDATE tusers SET fax='$fax' WHERE login='$samaccountname'");
}
}
if($g_title!=$title && $title!='' )
{
$update="de la fonction \"$title\"";
if($_GET['action']=='run') {
$title = $db->quote($title);
$db->exec("UPDATE tusers SET function=$title WHERE login='$samaccountname'");
}
}
//get gestsup company name
$q=$db->query("SELECT name FROM tcompany WHERE id='$g_company'");
$g_company_name=$q->fetch();
$q->closecursor();
if($company!=$g_company_name[0] && $company!='')
{
$update="de la Société \"$company\" ";
if($_GET['action']=='run')
{
//find company in GestSup database
$q = $db->query("SELECT * FROM `tcompany`");
while ($row=$q->fetch())
{
if ($company==$row['name']) $find_company=$row['id']; else $find_company='';
}
//if company is find update company id else create service in gestsup
if ($find_company!='')
{
$db->exec("UPDATE tusers SET service='$find_company' WHERE login='$samaccountname'");
}
elseif ($company!='')
{
$company = $db->quote($company);
$db->exec("INSERT INTO tcompany (name) VALUES ($company)");
echo "<i class=\"icon-plus-sign green bigger-130\"></i><font color=\"green\"> Société $company crée.</font><br />";
//get GestSup company table
$q = $db->query("SELECT * FROM `tcompany`");
while ($row=$q->fetch())
{
if ($company==$row['name']) $find_company=$row['id'];
}
// if company is find update company id else create company in gestsup
if ($find_company!='')
{
$db->exec("UPDATE tusers SET company='$find_company' WHERE login='$samaccountname'");
}
}
}
else
{
//get gestsup service table
$q = $db->query("SELECT * FROM `tcompany`");
while ($row=$q->fetch())
{
if ($company==$row['name']) $find_company=$row['id']; else $find_company='';
}
// if dept is find update service id else create service in gestsup
if ($find_company=='') echo "<i class=\"icon-plus-sign green bigger-130\"></i><font color=\"green\"> Création de la Société $company.</font><br />";
}
}
//get gestsup service name
$q=$db->query("SELECT name FROM tservices WHERE id='$g_service'");
$g_service_name=$q->fetch();
if($department!=$g_service_name[0] && $department!='')