Synchronisation: Champs vides AD complétés dans Gestsup
Posté : ven. 17 juin 2016 22:00
Bonjour,
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
ligne 215
ligne 224
ligne 238
ligne 246
ligne 253
ligne 261
ligne 268
ligne 281
ligne 331
Ou pour faire simple
ligne 207 à 331
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!='')