Synchronisation: Champs vides AD complétés dans Gestsup

Vous avez trouvé un bug dans l'application (dernière version stable ou bêta): Décrivez le ici afin que la correction soit intégrée a la prochaine version.
Répondre
JPS972
Gsup LEVEL 0
Messages : 8
Enregistré le : jeu. 29 nov. 2012 13:14
Localisation : Martinique

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

Code : Tout sélectionner

								if($g_firstname!=$givenname && $givenname!='') 
ligne 215

Code : Tout sélectionner

								if($g_lastname!=$sn && $sn!='')
ligne 224

Code : Tout sélectionner

								if($g_mail!=$mail && $mail!='') 
ligne 238

Code : Tout sélectionner

								if($g_streetaddress!=$streetaddress && ($streetaddress!=''))  
ligne 246

Code : Tout sélectionner

								if($g_postalcode!=$postalcode && ($postalcode!=''))  
ligne 253

Code : Tout sélectionner

								if($g_l!=$l && $l!='' )  
ligne 261

Code : Tout sélectionner

								if($g_fax!=$fax  && $fax!='' )  
ligne 268

Code : Tout sélectionner

								if($g_title!=$title  && $title!='' )  
ligne 281

Code : Tout sélectionner

								if($company!=$g_company_name[0] && $company!='')  
ligne 331

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!='') 
GESTSUP 3.1.7

Serveur PROD
Serveur: OS: Windows NT 6.1 build 7600 (W7 BE) i586| Apache 2.4.12 | Mysql 5.6.22-log | PHP 5.6.7

Serveur test ( WAMP)
Serveur: OS: Windows NT 6.1 build 7601 (W7 BE SP1) i586| Apache 2.4.4 | Mysql 5.6.12-log | PHP 5.4.16
Répondre