Ajout des numéros de téléphone sur la fiche adhérent

Fix: Correction sauvegarde date naissance fiche adhérent.
Ajout script exemple synchor ldap2dolibarr
This commit is contained in:
Laurent Destailleur 2006-11-26 02:59:09 +00:00
parent ba8a4f8402
commit 64472b3810
18 changed files with 515 additions and 195 deletions

View File

@ -50,6 +50,8 @@ class Adherent
var $prenom; var $prenom;
var $nom; var $nom;
var $fullname; var $fullname;
var $login;
var $pass;
var $societe; var $societe;
var $adresse; var $adresse;
var $cp; var $cp;
@ -57,18 +59,21 @@ class Adherent
var $pays_id; var $pays_id;
var $pays_code; var $pays_code;
var $pays; var $pays;
var $morphy;
var $email; var $email;
var $phone;
var $phone_perso;
var $phone_mobile;
var $morphy;
var $public; var $public;
var $commentaire; var $commentaire;
var $statut; var $statut; // -1=brouillon, 0=résilié, 1=validé,payé
var $login;
var $pass;
var $naiss; var $naiss;
var $photo; var $photo;
var $typeid; // Id type adherent var $typeid; // Id type adherent
var $type; // Libellé type adherent var $type; // Libellé type adherent
var $need_subscription; var $need_subscription;
// var $public; // var $public;
@ -95,7 +100,7 @@ class Adherent
/** /**
\brief function envoyant un email au destinataire (recipient) avec le text fourni en parametre. \brief Fonction envoyant un email au destinataire (recipient) avec le text fourni en parametre.
\param recipients destinataires \param recipients destinataires
\param text contenu du message \param text contenu du message
\param subject sujet du message \param subject sujet du message
@ -338,7 +343,7 @@ class Adherent
if ($result) if ($result)
{ {
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."adherent"); $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."adherent");
$result=$this->update(1); $result=$this->update($user,1);
// Appel des triggers // Appel des triggers
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
@ -362,9 +367,9 @@ class Adherent
\param notrigger 1=désactive le trigger UPDATE (quand appelé par creation) \param notrigger 1=désactive le trigger UPDATE (quand appelé par creation)
\return int <0 si KO, >0 si OK \return int <0 si KO, >0 si OK
*/ */
function update($notrigger=0) function update($user,$notrigger=0)
{ {
global $conf,$langs,$user; global $conf,$langs;
dolibarr_syslog("Adherent.class::update $notrigger"); dolibarr_syslog("Adherent.class::update $notrigger");
@ -380,21 +385,24 @@ class Adherent
$sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET"; $sql = "UPDATE ".MAIN_DB_PREFIX."adherent SET";
$sql .= " prenom = '".$this->prenom ."'"; $sql .= " prenom = '".$this->prenom ."'";
$sql .= ",nom='" .$this->nom."'"; $sql .= ",nom='" .$this->nom."'";
$sql .= ",login='" .$this->login."'";
$sql .= ",pass='" .$this->pass."'";
$sql .= ",societe='".$this->societe."'"; $sql .= ",societe='".$this->societe."'";
$sql .= ",adresse='".$this->adresse."'"; $sql .= ",adresse='".$this->adresse."'";
$sql .= ",cp='" .$this->cp."'"; $sql .= ",cp='" .$this->cp."'";
$sql .= ",ville='" .$this->ville."'"; $sql .= ",ville='" .$this->ville."'";
$sql .= ",pays='" .$this->pays_code."'"; $sql .= ",pays='" .$this->pays_code."'";
$sql .= ",note='" .$this->commentaire."'";
$sql .= ",email='" .$this->email."'"; $sql .= ",email='" .$this->email."'";
$sql .= ",login='" .$this->login."'"; $sql .= ",phone=" .($this->phone?"'".addslashes($this->phone)."'":"null");
$sql .= ",pass='" .$this->pass."'"; $sql .= ",phone_perso=" .($this->phone_perso?"'".addslashes($this->phone_perso)."'":"null");
$sql .= ",naiss=" .($this->naiss?"'".$this->naiss."'":"null"); $sql .= ",phone_mobile=" .($this->phone_mobile?"'".addslashes($this->phone_mobile)."'":"null");
$sql .= ",note=" .($this->commentaire?"'".addslashes($this->commentaire)."'":"null");
$sql .= ",naiss=" .$this->db->idate($this->naiss);
$sql .= ",photo=" .($this->photo?"'".$this->photo."'":"null"); $sql .= ",photo=" .($this->photo?"'".$this->photo."'":"null");
$sql .= ",public='" .$this->public."'"; $sql .= ",public='" .$this->public."'";
$sql .= ",statut=" .$this->statut; $sql .= ",statut=" .$this->statut;
$sql .= ",fk_adherent_type=".$this->typeid; $sql .= ",fk_adherent_type=".$this->typeid;
$sql .= ",morphy='".$this->morphy."'"; $sql .= ",morphy='" .$this->morphy."'";
$sql .= " WHERE rowid = ".$this->id; $sql .= " WHERE rowid = ".$this->id;
dolibarr_syslog("Adherent::update sql=$sql"); dolibarr_syslog("Adherent::update sql=$sql");
@ -500,30 +508,29 @@ class Adherent
} }
/** /**
\brief Fonction qui récupére l'adhérent en donnant son login * \brief Fonction qui récupére l'adhérent en donnant son login
\param login login de l'adhérent * \param login login de l'adhérent
*/ */
function fetch_login($login) function fetch_login($login)
{ {
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent WHERE login='$login' LIMIT 1"; $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."adherent WHERE login='$login' LIMIT 1";
$result=$this->db->query( $sql); $result=$this->db->query( $sql);
if ($result) if ($result)
{ {
if ($this->db->num_rows()) if ($this->db->num_rows())
{ {
$obj = $this->db->fetch_object($result); $obj = $this->db->fetch_object($result);
$this->fetch($obj->rowid); $this->fetch($obj->rowid);
} }
} }
else else
{ {
dolibarr_print_error($this->db); dolibarr_print_error($this->db);
} }
} }
/** /**
@ -535,7 +542,9 @@ class Adherent
{ {
global $langs; global $langs;
$sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note, d.email, d.login, d.pass, d.naiss, d.photo, d.fk_adherent_type, d.morphy,"; $sql = "SELECT d.rowid, d.prenom, d.nom, d.societe, d.statut, d.public, d.adresse, d.cp, d.ville, d.note,";
$sql.= " d.email, d.phone, d.phone_perso, d.phone_mobile, d.login, d.pass,";
$sql.= " d.naiss, d.photo, d.fk_adherent_type, d.morphy,";
$sql.= " ".$this->db->pdate("d.datefin")." as datefin,"; $sql.= " ".$this->db->pdate("d.datefin")." as datefin,";
$sql.= " d.pays, p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib,"; $sql.= " d.pays, p.rowid as pays_id, p.code as pays_code, p.libelle as pays_lib,";
$sql.= " t.libelle as type, t.cotisation as cotisation"; $sql.= " t.libelle as type, t.cotisation as cotisation";
@ -552,12 +561,11 @@ class Adherent
$obj = $this->db->fetch_object($resql); $obj = $this->db->fetch_object($resql);
$this->id = $obj->rowid; $this->id = $obj->rowid;
$this->statut = $obj->statut;
$this->public = $obj->public;
$this->date = $obj->datedon;
$this->prenom = $obj->prenom; $this->prenom = $obj->prenom;
$this->nom = $obj->nom; $this->nom = $obj->nom;
$this->fullname = trim($obj->nom.' '.$obj->prenom); $this->fullname = trim($obj->nom.' '.$obj->prenom);
$this->login = $obj->login;
$this->pass = $obj->pass;
$this->societe = $obj->societe; $this->societe = $obj->societe;
$this->adresse = $obj->adresse; $this->adresse = $obj->adresse;
$this->cp = $obj->cp; $this->cp = $obj->cp;
@ -567,11 +575,15 @@ class Adherent
if ($langs->trans("Country".$obj->pays_code) != "Country".$obj->pays_code) $this->pays = $langs->trans("Country".$obj->pays_code); if ($langs->trans("Country".$obj->pays_code) != "Country".$obj->pays_code) $this->pays = $langs->trans("Country".$obj->pays_code);
elseif ($obj->pays_lib) $this->pays=$obj->pays_lib; elseif ($obj->pays_lib) $this->pays=$obj->pays_lib;
else $this->pays=$obj->pays; else $this->pays=$obj->pays;
$this->phone = $obj->phone;
$this->phone_perso = $obj->phone_perso;
$this->phone_mobile = $obj->phone_mobile;
$this->email = $obj->email; $this->email = $obj->email;
$this->login = $obj->login;
$this->pass = $obj->pass;
$this->naiss = $obj->naiss; $this->naiss = $obj->naiss;
$this->photo = $obj->photo; $this->photo = $obj->photo;
$this->statut = $obj->statut;
$this->public = $obj->public;
$this->date = $obj->datedon;
$this->datefin = $obj->datefin; $this->datefin = $obj->datefin;
$this->commentaire = $obj->note; $this->commentaire = $obj->note;
$this->morphy = $obj->morphy; $this->morphy = $obj->morphy;
@ -1614,10 +1626,11 @@ class Adherent
// Initialise paramètres // Initialise paramètres
$this->id=0; $this->id=0;
$this->specimen=1; $this->specimen=1;
$this->fullname = 'DOLIBARR SPECIMEN';
$this->nom = 'DOLIBARR'; $this->nom = 'DOLIBARR';
$this->prenom = 'SPECIMEN'; $this->prenom = 'SPECIMEN';
$this->fullname=trim($this->nom.' '.$this->prenom); $this->fullname=trim($this->nom.' '.$this->prenom);
$this->login='dolibspec';
$this->pass='dolibspec';
$this->societe = 'Societe ABC'; $this->societe = 'Societe ABC';
$this->adresse = '61 jump street'; $this->adresse = '61 jump street';
$this->cp = '75000'; $this->cp = '75000';
@ -1625,15 +1638,16 @@ class Adherent
$this->pays_id = 1; $this->pays_id = 1;
$this->pays_code = 'FR'; $this->pays_code = 'FR';
$this->pays = 'France'; $this->pays = 'France';
$this->moraphy = 1; $this->morphy = 1;
$this->email = 'specimen@specimen.com'; $this->email = 'specimen@specimen.com';
$this->public=1; $this->phone = '0999999999';
$this->phone_perso = '0999999998';
$this->phone_mobile = '0999999997';
$this->commentaire='No comment'; $this->commentaire='No comment';
$this->statut=1;
$this->login='dolibspec';
$this->pass='dolibspec';
$this->naiss=time(); $this->naiss=time();
$this->photo=''; $this->photo='';
$this->public=1;
$this->statut=1;
$this->typeid=1; // Id type adherent $this->typeid=1; // Id type adherent
$this->type='Type adherent'; // Libellé type adherent $this->type='Type adherent'; // Libellé type adherent
@ -1687,19 +1701,20 @@ class Adherent
// Champs // Champs
if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname; if ($this->fullname && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->fullname;
if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom; if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom;
if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->prenom; if ($this->prenom && $conf->global->LDAP_FIELD_FIRSTNAME) $info[$conf->global->LDAP_FIELD_FIRSTNAME] = $this->prenom;
if ($this->login && $conf->global->LDAP_FIELD_LOGIN) $info[$conf->global->LDAP_FIELD_LOGIN] = $this->login; if ($this->login && $conf->global->LDAP_FIELD_LOGIN) $info[$conf->global->LDAP_FIELD_LOGIN] = $this->login;
if ($this->poste) $info["title"] = $this->poste; if ($this->poste && $conf->global->LDAP_FIELD_TITLE) $info[$conf->global->LDAP_FIELD_TITLE] = $this->poste;
if ($this->address && $conf->global->LDAP_FIELD_ADDRESS) $info[$conf->global->LDAP_FIELD_ADDRESS] = $this->address; if ($this->address && $conf->global->LDAP_FIELD_ADDRESS) $info[$conf->global->LDAP_FIELD_ADDRESS] = $this->address;
if ($this->cp && $conf->global->LDAP_FIELD_ZIP) $info[$conf->global->LDAP_FIELD_ZIP] = $this->cp; if ($this->cp && $conf->global->LDAP_FIELD_ZIP) $info[$conf->global->LDAP_FIELD_ZIP] = $this->cp;
if ($this->ville && $conf->global->LDAP_FIELD_TOWN) $info[$conf->global->LDAP_FIELD_TOWN] = $this->ville; if ($this->ville && $conf->global->LDAP_FIELD_TOWN) $info[$conf->global->LDAP_FIELD_TOWN] = $this->ville;
if ($this->phone_pro && $conf->global->LDAP_FIELD_PHONE) $info[$conf->global->LDAP_FIELD_PHONE] = $this->phone_pro; if ($this->pays && $conf->global->LDAP_FIELD_COUNTRY) $info[$conf->global->LDAP_FIELD_COUNTRY] = $this->pays;
if ($this->phone_pro && $conf->global->LDAP_FIELD_PHONE) $info[$conf->global->LDAP_FIELD_PHONE] = $this->phone_pro;
if ($this->phone_perso) $info["homePhone"] = $this->phone_perso; if ($this->phone_perso) $info["homePhone"] = $this->phone_perso;
if ($this->phone_mobile && $conf->global->LDAP_FIELD_MOBILE) $info[$conf->global->LDAP_FIELD_MOBILE] = $this->phone_mobile; if ($this->phone_mobile && $conf->global->LDAP_FIELD_MOBILE) $info[$conf->global->LDAP_FIELD_MOBILE] = $this->phone_mobile;
if ($this->fax && $conf->global->LDAP_FIELD_FAX) $info[$conf->global->LDAP_FIELD_FAX] = $this->fax; if ($this->fax && $conf->global->LDAP_FIELD_FAX) $info[$conf->global->LDAP_FIELD_FAX] = $this->fax;
if ($this->note && $conf->global->LDAP_FIELD_DESCRIPTION) $info[$conf->global->LDAP_FIELD_DESCRIPTION] = $this->note; if ($this->email && $conf->global->LDAP_FIELD_MAIL) $info[$conf->global->LDAP_FIELD_MAIL] = $this->email;
if ($this->email && $conf->global->LDAP_FIELD_MAIL) $info[$conf->global->LDAP_FIELD_MAIL] = $this->email; if ($this->commentaire && $conf->global->LDAP_FIELD_DESCRIPTION) $info[$conf->global->LDAP_FIELD_DESCRIPTION] = $this->commentaire;
return $info; return $info;
} }

View File

@ -129,22 +129,30 @@ if ($_REQUEST["action"] == 'update')
$adh->id = $_POST["rowid"]; $adh->id = $_POST["rowid"];
$adh->prenom = $_POST["prenom"]; $adh->prenom = $_POST["prenom"];
$adh->nom = $_POST["nom"]; $adh->nom = $_POST["nom"];
$adh->societe = $_POST["societe"]; $adh->fullname = trim($adh->prenom.' '.$adh->nom);
$adh->adresse = $_POST["adresse"];
$adh->amount = $_POST["amount"];
$adh->cp = $_POST["cp"];
$adh->ville = $_POST["ville"];
$adh->email = $_POST["email"];
$adh->login = $_POST["login"]; $adh->login = $_POST["login"];
$adh->pass = $_POST["pass"]; $adh->pass = $_POST["pass"];
$adh->naiss = $_POST["naiss"];
$adh->photo = $_POST["photo"]; $adh->societe = $_POST["societe"];
$adh->date = $datenaiss; $adh->adresse = $_POST["adresse"];
$adh->note = $_POST["note"]; $adh->cp = $_POST["cp"];
$adh->ville = $_POST["ville"];
$adh->pays = $_POST["pays"]; $adh->pays = $_POST["pays"];
$adh->phone = $_POST["phone"];
$adh->phone_perso = $_POST["phone_perso"];
$adh->phone_mobile= $_POST["phone_mobile"];
$adh->email = $_POST["email"];
$adh->naiss = $_POST["naiss"];
$adh->date = $adh->naiss;
$adh->photo = $_POST["photo"];
$adh->typeid = $_POST["type"]; $adh->typeid = $_POST["type"];
$adh->commentaire = $_POST["comment"]; $adh->commentaire = $_POST["comment"];
$adh->morphy = $_POST["morphy"]; $adh->morphy = $_POST["morphy"];
$adh->amount = $_POST["amount"];
// recuperation du statut et public // recuperation du statut et public
$adh->statut = $_POST["statut"]; $adh->statut = $_POST["statut"];
$adh->public = $_POST["public"]; $adh->public = $_POST["public"];
@ -156,7 +164,7 @@ if ($_REQUEST["action"] == 'update')
$adh->array_options[$key]=$_POST[$key]; $adh->array_options[$key]=$_POST[$key];
} }
} }
if ($adh->update(0) >= 0) if ($adh->update($user,0) >= 0)
{ {
Header("Location: fiche.php?rowid=".$adh->id); Header("Location: fiche.php?rowid=".$adh->id);
exit; exit;
@ -197,11 +205,14 @@ if ($_POST["action"] == 'add')
$cp=$_POST["cp"]; $cp=$_POST["cp"];
$ville=$_POST["ville"]; $ville=$_POST["ville"];
$pays_code=$_POST["pays_code"]; $pays_code=$_POST["pays_code"];
$phone=$_POST["phone"];
$phone_perso=$_POST["phone_perso"];
$phone_mobile=$_POST["phone_mobile"];
$email=$_POST["member_email"]; $email=$_POST["member_email"];
$login=$_POST["member_login"]; $login=$_POST["member_login"];
$pass=$_POST["member_pass"]; $pass=$_POST["member_pass"];
$photo=$_POST["photo"]; $photo=$_POST["photo"];
$note=$_POST["note"];
$comment=$_POST["comment"]; $comment=$_POST["comment"];
$morphy=$_POST["morphy"]; $morphy=$_POST["morphy"];
$cotisation=$_POST["cotisation"]; $cotisation=$_POST["cotisation"];
@ -214,12 +225,14 @@ if ($_POST["action"] == 'add')
$adh->cp = $cp; $adh->cp = $cp;
$adh->ville = $ville; $adh->ville = $ville;
$adh->pays_code = $pays_code; $adh->pays_code = $pays_code;
$adh->phone = $phone;
$adh->phone_perso = $phone_perso;
$adh->phone_mobile= $phone_mobile;
$adh->email = $email; $adh->email = $email;
$adh->login = $login; $adh->login = $login;
$adh->pass = $pass; $adh->pass = $pass;
$adh->naiss = $datenaiss; $adh->naiss = $datenaiss;
$adh->photo = $photo; $adh->photo = $photo;
$adh->note = $note;
$adh->typeid = $type; $adh->typeid = $type;
$adh->commentaire = $comment; $adh->commentaire = $comment;
$adh->morphy = $morphy; $adh->morphy = $morphy;
@ -483,16 +496,25 @@ if ($action == 'edit')
$htmls = new Form($db); $htmls = new Form($db);
// Ref
print '<tr><td>'.$langs->trans("Ref").'</td><td class="valeur" colspan="2">'.$adh->id.'&nbsp;</td></tr>';
// Nom // Nom
print '<tr><td>'.$langs->trans("Name").'</td><td><input type="text" name="nom" size="40" value="'.$adh->nom.'"></td>'; print '<tr><td>'.$langs->trans("Name").'</td><td><input type="text" name="nom" size="40" value="'.$adh->nom.'"></td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>'; print '<td valign="top" width="50%">'.$langs->trans("Notes").'</td></tr>';
// Prenom // Prenom
print '<tr><td width="15%">'.$langs->trans("Firstname").'</td><td width="35%"><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>'; print '<tr><td width="15%">'.$langs->trans("Firstname").'</td><td width="35%"><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>';
$rowspan=13; $rowspan=16;
print '<td rowspan="'.$rowspan.'" valign="top">'; print '<td rowspan="'.$rowspan.'" valign="top">';
print '<textarea name="comment" wrap="soft" cols="40" rows="15">'.$adh->commentaire.'</textarea></td></tr>'; print '<textarea name="comment" wrap="soft" cols="40" rows="15">'.$adh->commentaire.'</textarea></td></tr>';
// Login
print '<tr><td>'.$langs->trans("Login").'</td><td><input type="text" name="login" size="40" value="'.$adh->login.'"></td></tr>';
// Password
print '<tr><td>'.$langs->trans("Password").'</td><td><input type="password" name="pass" size="40" value="'.$adh->pass.'"></td></tr>';
// Type // Type
print '<tr><td>'.$langs->trans("Type").'</td><td>'; print '<tr><td>'.$langs->trans("Type").'</td><td>';
$htmls->select_array("type", $adht->liste_array(), $adh->typeid); $htmls->select_array("type", $adht->liste_array(), $adh->typeid);
@ -511,13 +533,26 @@ if ($action == 'edit')
// Adresse // Adresse
print '<tr><td>'.$langs->trans("Address").'</td><td>'; print '<tr><td>'.$langs->trans("Address").'</td><td>';
print '<textarea name="adresse" wrap="soft" cols="40" rows="2">'.$adh->adresse.'</textarea></td></tr>'; print '<textarea name="adresse" wrap="soft" cols="40" rows="2">'.$adh->adresse.'</textarea></td></tr>';
// Cp
print '<tr><td>'.$langs->trans("Zip").'/'.$langs->trans("Town").'</td><td><input type="text" name="cp" size="6" value="'.$adh->cp.'"> <input type="text" name="ville" size="32" value="'.$adh->ville.'"></td></tr>'; print '<tr><td>'.$langs->trans("Zip").'/'.$langs->trans("Town").'</td><td><input type="text" name="cp" size="6" value="'.$adh->cp.'"> <input type="text" name="ville" size="32" value="'.$adh->ville.'"></td></tr>';
// Pays
print '<tr><td>'.$langs->trans("Country").'</td><td>'; print '<tr><td>'.$langs->trans("Country").'</td><td>';
$htmls->select_pays($adh->pays_code?$adh->pays_code:$mysoc->pays_code,'pays'); $htmls->select_pays($adh->pays_code?$adh->pays_code:$mysoc->pays_code,'pays');
print '</td></tr>'; print '</td></tr>';
// Tel
print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input type="text" name="phone" size="20" value="'.$adh->phone.'"></td></tr>';
// Tel perso
print '<tr><td>'.$langs->trans("PhonePerso").'</td><td><input type="text" name="phone_perso" size="20" value="'.$adh->phone_perso.'"></td></tr>';
// Tel mobile
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.$adh->phone_mobile.'"></td></tr>';
// EMail
print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td><input type="text" name="email" size="40" value="'.$adh->email.'"></td></tr>'; print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td><input type="text" name="email" size="40" value="'.$adh->email.'"></td></tr>';
print '<tr><td>'.$langs->trans("Login").'</td><td><input type="text" name="login" size="40" value="'.$adh->login.'"></td></tr>';
print '<tr><td>'.$langs->trans("Password").'</td><td><input type="password" name="pass" size="40" value="'.$adh->pass.'"></td></tr>';
// Date naissance // Date naissance
print "<tr><td>".$langs->trans("Birthday")."</td><td>\n"; print "<tr><td>".$langs->trans("Birthday")."</td><td>\n";
@ -560,18 +595,18 @@ if ($action == 'create')
// Nom // Nom
print '<tr><td>'.$langs->trans("Lastname").'*</td><td><input type="text" name="nom" value="'.$adh->nom.'" size="40"></td>'; print '<tr><td>'.$langs->trans("Lastname").'*</td><td><input type="text" name="nom" value="'.$adh->nom.'" size="40"></td>';
print '<td width="50%" valign="top">'.$langs->trans("Comments").' :</td></tr>'; print '<td width="50%" valign="top">'.$langs->trans("Notes").' :</td></tr>';
// Prenom // Prenom
print '<tr><td>'.$langs->trans("Firstname").'*</td><td><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>'; print '<tr><td>'.$langs->trans("Firstname").'*</td><td><input type="text" name="prenom" size="40" value="'.$adh->prenom.'"></td>';
$rowspan=12; $rowspan=15;
print '<td valign="top" rowspan="'.$rowspan.'"><textarea name="comment" wrap="soft" cols="60" rows="12"></textarea></td></tr>'; print '<td valign="top" rowspan="'.$rowspan.'"><textarea name="comment" wrap="soft" cols="60" rows="12">'.$adh->commantaire.'</textarea></td></tr>';
// Login // Login
print '<tr><td>'.$langs->trans("Login").'*</td><td><input type="text" name="member_login" size="40" value="'.$adh->login.'"></td></tr>'; print '<tr><td>'.$langs->trans("Login").'*</td><td><input type="text" name="member_login" size="40" value="'.$adh->login.'"></td></tr>';
// Mot de pass // Mot de pass
print '<tr><td>'.$langs->trans("Password").'*</td><td><input type="password" name="member_pass" size="40" value="'.$adh->password.'"></td></tr>'; print '<tr><td>'.$langs->trans("Password").'*</td><td><input type="password" name="member_pass" size="40" value="'.$adh->pass.'"></td></tr>';
// Type // Type
print '<tr><td>'.$langs->trans("MemberType").'*</td><td>'; print '<tr><td>'.$langs->trans("MemberType").'*</td><td>';
@ -595,22 +630,31 @@ if ($action == 'create')
// Adresse // Adresse
print '<tr><td valign="top">'.$langs->trans("Address").'</td><td>'; print '<tr><td valign="top">'.$langs->trans("Address").'</td><td>';
print '<textarea name="adresse" wrap="soft" cols="40" rows="2"></textarea></td></tr>'; print '<textarea name="adresse" wrap="soft" cols="40" rows="2">'.$adh->adresse.'</textarea></td></tr>';
// CP // CP / Ville
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td><input type="text" name="cp" size="8"> <input type="text" name="ville" size="32" value="'.$adh->ville.'"></td></tr>'; print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td><input type="text" name="cp" size="8"> <input type="text" name="ville" size="32" value="'.$adh->ville.'"></td></tr>';
// Ville // Pays
print '<tr><td>'.$langs->trans("Country").'</td><td>'; print '<tr><td>'.$langs->trans("Country").'</td><td>';
$htmls->select_pays($adh->pays_code?$adh->pays_code:$mysoc->pays_code,'pays_code'); $htmls->select_pays($adh->pays_code?$adh->pays_code:$mysoc->pays_code,'pays_code');
print '</td></tr>'; print '</td></tr>';
// Tel pro
print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input type="text" name="phone" size="20" value="'.$adh->phone.'"></td></tr>';
// Tel perso
print '<tr><td>'.$langs->trans("PhonePerso").'</td><td><input type="text" name="phone_perso" size="20" value="'.$adh->phone_perso.'"></td></tr>';
// Tel mobile
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input type="text" name="phone_mobile" size="20" value="'.$adh->phone_mobile.'"></td></tr>';
// EMail // EMail
print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td><input type="text" name="member_email" size="40" value="'.$adh->email.'"></td></tr>'; print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td><input type="text" name="member_email" size="40" value="'.$adh->email.'"></td></tr>';
// Date naissance // Date naissance
print "<tr><td>".$langs->trans("Birthday")."</td><td>\n"; print "<tr><td>".$langs->trans("Birthday")."</td><td>\n";
$htmls->select_date(-1,'naiss','','',1,'add'); $htmls->select_date(($adh->naiss ? $adh->naiss : -1),'naiss','','',1,'add');
print "</td></tr>\n"; print "</td></tr>\n";
// Url photo // Url photo
@ -756,7 +800,7 @@ if ($rowid && $action != 'edit')
// Nom // Nom
print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Lastname").'*</td><td class="valeur">'.$adh->nom.'&nbsp;</td>';
print '<td valign="top" width="50%">'.$langs->trans("Comments").'</td></tr>'; print '<td valign="top" width="50%">'.$langs->trans("Notes").'</td></tr>';
// Prenom // Prenom
print '<tr><td>'.$langs->trans("Firstname").'*</td><td class="valeur">'.$adh->prenom.'&nbsp;</td>'; print '<tr><td>'.$langs->trans("Firstname").'*</td><td class="valeur">'.$adh->prenom.'&nbsp;</td>';
@ -768,22 +812,50 @@ if ($rowid && $action != 'edit')
// Type // Type
print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td></tr>\n"; print '<tr><td>'.$langs->trans("Type").'*</td><td class="valeur">'.$adh->type."</td></tr>\n";
// Morphy
print '<tr><td>'.$langs->trans("Person").'</td><td class="valeur">'.$adh->getmorphylib().'</td></tr>'; print '<tr><td>'.$langs->trans("Person").'</td><td class="valeur">'.$adh->getmorphylib().'</td></tr>';
// Tiers
print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$adh->societe.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Company").'</td><td class="valeur">'.$adh->societe.'&nbsp;</td></tr>';
// Adresse
print '<tr><td>'.$langs->trans("Address").'</td><td class="valeur">'.nl2br($adh->adresse).'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Address").'</td><td class="valeur">'.nl2br($adh->adresse).'&nbsp;</td></tr>';
// CP / Ville
print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td class="valeur">'.$adh->cp.' '.$adh->ville.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Zip").' / '.$langs->trans("Town").'</td><td class="valeur">'.$adh->cp.' '.$adh->ville.'&nbsp;</td></tr>';
// Pays
print '<tr><td>'.$langs->trans("Country").'</td><td class="valeur">'.$adh->pays.'</td></tr>'; print '<tr><td>'.$langs->trans("Country").'</td><td class="valeur">'.$adh->pays.'</td></tr>';
// Tel pro.
print '<tr><td>'.$langs->trans("PhonePro").'</td><td class="valeur">'.$adh->phone.'</td></tr>';
// Tel perso
print '<tr><td>'.$langs->trans("PhonePerso").'</td><td class="valeur">'.$adh->phone_perso.'</td></tr>';
// Tel mobile
print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td class="valeur">'.$adh->phone_mobile.'</td></tr>';
// EMail
print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td class="valeur">'.$adh->email.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("EMail").($conf->global->ADHERENT_MAIL_REQUIRED?'*':'').'</td><td class="valeur">'.$adh->email.'&nbsp;</td></tr>';
// print '<tr><td>Pass</td><td class="valeur">'.$adh->pass.'&nbsp;</td></tr>';
// Date naissance
print '<tr><td>'.$langs->trans("Birthday").'</td><td class="valeur">'.$adh->naiss.'&nbsp;</td></tr>'; print '<tr><td>'.$langs->trans("Birthday").'</td><td class="valeur">'.$adh->naiss.'&nbsp;</td></tr>';
// URL
print '<tr><td>URL Photo</td><td class="valeur">'.$adh->photo.'&nbsp;</td></tr>'; print '<tr><td>URL Photo</td><td class="valeur">'.$adh->photo.'&nbsp;</td></tr>';
// Public
print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">'; print '<tr><td>'.$langs->trans("Public").'</td><td class="valeur">';
if ($adh->public==1) print $langs->trans("Yes"); if ($adh->public==1) print $langs->trans("Yes");
else print $langs->trans("No"); else print $langs->trans("No");
print '</td></tr>'; print '</td></tr>';
// Status
print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$adh->getLibStatut(4).'</td></tr>'; print '<tr><td>'.$langs->trans("Status").'</td><td class="valeur">'.$adh->getLibStatut(4).'</td></tr>';
// Autres attributs
foreach($adho->attribute_label as $key=>$value){ foreach($adho->attribute_label as $key=>$value){
print "<tr><td>$value</td><td>".$adh->array_options["options_$key"]."&nbsp;</td></tr>\n"; print "<tr><td>$value</td><td>".$adh->array_options["options_$key"]."&nbsp;</td></tr>\n";
} }

View File

@ -61,6 +61,11 @@ if ($_GET["action"] == 'setvalue' && $user->admin)
if (! dolibarr_set_const($db, 'LDAP_FIELD_PHONE',$_POST["fieldphone"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_PHONE',$_POST["fieldphone"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_FAX',$_POST["fieldfax"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_FAX',$_POST["fieldfax"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_MOBILE',$_POST["fieldmobile"])) $error++; if (! dolibarr_set_const($db, 'LDAP_FIELD_MOBILE',$_POST["fieldmobile"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_ADDRESS',$_POST["fieldaddress"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_ZIP',$_POST["fieldzip"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_TOWN',$_POST["fieldtown"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_COUNTRY',$_POST["fieldcountry"])) $error++;
if (! dolibarr_set_const($db, 'LDAP_FIELD_DESCRIPTION',$_POST["fielddescription"])) $error++;
if ($error) if ($error)
{ {
@ -200,6 +205,45 @@ print '</td><td>'.$langs->trans("LDAPFieldFaxExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_FAX.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_FAX?' checked="true"':'')."></td>"; print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_FAX.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_FAX?' checked="true"':'')."></td>";
print '</tr>'; print '</tr>';
// Address
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldAddress").'</td><td>';
print '<input size="25" type="text" name="fieldaddress" value="'.$conf->global->LDAP_FIELD_ADDRESS.'">';
print '</td><td>'.$langs->trans("LDAPFieldAddressExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_ADDRESS.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_ADDRESS?' checked="true"':'')."></td>";
print '</tr>';
// CP
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldZip").'</td><td>';
print '<input size="25" type="text" name="fieldzip" value="'.$conf->global->LDAP_FIELD_ZIP.'">';
print '</td><td>'.$langs->trans("LDAPFieldZipExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_ZIP.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_ZIP?' checked="true"':'')."></td>";
print '</tr>';
// Ville
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldTown").'</td><td>';
print '<input size="25" type="text" name="fieldtown" value="'.$conf->global->LDAP_FIELD_TOWN.'">';
print '</td><td>'.$langs->trans("LDAPFieldTownExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_TOWN.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_TOWN?' checked="true"':'')."></td>";
print '</tr>';
// Pays
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldCountry").'</td><td>';
print '<input size="25" type="text" name="fieldcountry" value="'.$conf->global->LDAP_FIELD_COUNTRY.'">';
print '</td><td>'.$langs->trans("LDAPFieldCountryExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_COUNTRY.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_COUNTRY?' checked="true"':'')."></td>";
print '</tr>';
// Description
$var=!$var;
print '<tr '.$bc[$var].'><td>'.$langs->trans("LDAPFieldDescription").'</td><td>';
print '<input size="25" type="text" name="fielddescription" value="'.$conf->global->LDAP_FIELD_DESCRIPTION.'">';
print '</td><td>'.$langs->trans("LDAPFieldDescriptionExample").'</td>';
print '<td align="right"><input type="radio" name="key" value="'.$conf->global->LDAP_FIELD_DESCRIPTION.'"'.($conf->global->LDAP_KEY_MEMBERS==$conf->global->LDAP_FIELD_DESCRIPTION?' checked="true"':'')."></td>";
print '</tr>';
$var=!$var; $var=!$var;
print '<tr '.$bc[$var].'><td colspan="4" align="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td></tr>'; print '<tr '.$bc[$var].'><td colspan="4" align="center"><input type="submit" class="button" value="'.$langs->trans("Modify").'"></td></tr>';

View File

@ -297,6 +297,7 @@ class Conf
$this->export->dir_temp =DOL_DATA_ROOT."/export/temp"; $this->export->dir_temp =DOL_DATA_ROOT."/export/temp";
// Module ldap // Module ldap
$this->ldap->enabled=defined("MAIN_MODULE_LDAP")?MAIN_MODULE_LDAP:0; $this->ldap->enabled=defined("MAIN_MODULE_LDAP")?MAIN_MODULE_LDAP:0;
$this->ldap->dir_temp=DOL_DATA_ROOT."/ldap/temp";
// Module FCKeditor // Module FCKeditor
$this->fckeditor->enabled=defined("MAIN_MODULE_FCKEDITOR")?MAIN_MODULE_FCKEDITOR:0; $this->fckeditor->enabled=defined("MAIN_MODULE_FCKEDITOR")?MAIN_MODULE_FCKEDITOR:0;
$this->fckeditor->dir_output=DOL_DATA_ROOT."/fckeditor"; $this->fckeditor->dir_output=DOL_DATA_ROOT."/fckeditor";

View File

@ -304,10 +304,10 @@ if ($user->rights->societe->contact->creer)
$form->select_pays($contact->fk_pays); $form->select_pays($contact->fk_pays);
print '</td></tr>'; print '</td></tr>';
print '<tr><td>Tel Pro</td><td><input name="phone_pro" type="text" size="18" maxlength="80" value="'.$contact->phone_pro.'"></td>'; print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input name="phone_pro" type="text" size="18" maxlength="80" value="'.$contact->phone_pro.'"></td>';
print '<td>Tel Perso</td><td><input name="phone_perso" type="text" size="18" maxlength="80" value="'.$contact->phone_perso.'"></td></tr>'; print '<td>'.$langs->trans("PhonePerso").'</td><td><input name="phone_perso" type="text" size="18" maxlength="80" value="'.$contact->phone_perso.'"></td></tr>';
print '<tr><td>Portable</td><td><input name="phone_mobile" type="text" size="18" maxlength="80" value="'.$contact->phone_mobile.'"></td>'; print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input name="phone_mobile" type="text" size="18" maxlength="80" value="'.$contact->phone_mobile.'"></td>';
print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" type="text" size="18" maxlength="80" value="'.$contact->fax.'"></td></tr>'; print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" type="text" size="18" maxlength="80" value="'.$contact->fax.'"></td></tr>';
print '<tr><td>'.$langs->trans("Email").'</td><td colspan="3"><input name="email" type="text" size="50" maxlength="80" value="'.$contact->email.'"></td></tr>'; print '<tr><td>'.$langs->trans("Email").'</td><td colspan="3"><input name="email" type="text" size="50" maxlength="80" value="'.$contact->email.'"></td></tr>';
@ -382,10 +382,10 @@ if ($user->rights->societe->contact->creer)
$form->select_pays($contact->fk_pays); $form->select_pays($contact->fk_pays);
print '</td></tr>'; print '</td></tr>';
print '<tr><td>Tel Pro</td><td><input name="phone_pro" type="text" size="18" maxlength="80" value="'.$contact->phone_pro.'"></td>'; print '<tr><td>'.$langs->trans("PhonePro").'</td><td><input name="phone_pro" type="text" size="18" maxlength="80" value="'.$contact->phone_pro.'"></td>';
print '<td>Tel Perso</td><td><input name="phone_perso" type="text" size="18" maxlength="80" value="'.$contact->phone_perso.'"></td></tr>'; print '<td>'.$langs->trans("PhonePerso").'</td><td><input name="phone_perso" type="text" size="18" maxlength="80" value="'.$contact->phone_perso.'"></td></tr>';
print '<tr><td>Portable</td><td><input name="phone_mobile" type="text" size="18" maxlength="80" value="'.$contact->phone_mobile.'"></td>'; print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td><input name="phone_mobile" type="text" size="18" maxlength="80" value="'.$contact->phone_mobile.'"></td>';
print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" type="text" size="18" maxlength="80" value="'.$contact->fax.'"></td></tr>'; print '<td>'.$langs->trans("Fax").'</td><td><input name="fax" type="text" size="18" maxlength="80" value="'.$contact->fax.'"></td></tr>';
print '<tr><td>'.$langs->trans("EMail").'</td><td><input name="email" type="text" size="40" maxlength="80" value="'.$contact->email.'"></td>'; print '<tr><td>'.$langs->trans("EMail").'</td><td><input name="email" type="text" size="40" maxlength="80" value="'.$contact->email.'"></td>';
@ -501,10 +501,10 @@ if ($_GET["id"] && $_GET["action"] != 'edit')
print $contact->pays; print $contact->pays;
print '</td></tr>'; print '</td></tr>';
print '<tr><td>Tel Pro</td><td>'.$contact->phone_pro.'</td>'; print '<tr><td>'.$langs->trans("PhonePro").'</td><td>'.$contact->phone_pro.'</td>';
print '<td>Tel Perso</td><td>'.$contact->phone_perso.'</td></tr>'; print '<td>'.$langs->trans("PhonePerso").'</td><td>'.$contact->phone_perso.'</td></tr>';
print '<tr><td>Portable</td><td>'.$contact->phone_mobile.'</td>'; print '<tr><td>'.$langs->trans("PhoneMobile").'</td><td>'.$contact->phone_mobile.'</td>';
print '<td>'.$langs->trans("Fax").'</td><td>'.$contact->fax.'</td></tr>'; print '<td>'.$langs->trans("Fax").'</td><td>'.$contact->fax.'</td></tr>';
print '<tr><td>'.$langs->trans("EMail").'</td><td>'; print '<tr><td>'.$langs->trans("EMail").'</td><td>';

View File

@ -582,6 +582,8 @@ LDAPFieldZip=Zip
LDAPFieldZipExample=Example : postalcode LDAPFieldZipExample=Example : postalcode
LDAPFieldTown=Town LDAPFieldTown=Town
LDAPFieldTownExample=Example : l LDAPFieldTownExample=Example : l
LDAPFieldCountry=Country
LDAPFieldCountryExample=Example :
LDAPFieldDescription=Description LDAPFieldDescription=Description
LDAPFieldDescriptionExample=Example : description LDAPFieldDescriptionExample=Example : description
LDAPFieldSid=SID LDAPFieldSid=SID

View File

@ -38,6 +38,9 @@ Region=Region
Country=Country Country=Country
CountryCode=Country code CountryCode=Country code
Phone=Phone Phone=Phone
PhonePro=Prof. phone
PhonePerso=Pers. phone
PhoneMobile=Mobile
Fax=Fax Fax=Fax
Zip=Zip Code Zip=Zip Code
Town=Town Town=Town

View File

@ -582,6 +582,8 @@ LDAPFieldZip=Code postal
LDAPFieldZipExample=Exemple : postalcode LDAPFieldZipExample=Exemple : postalcode
LDAPFieldTown=Ville LDAPFieldTown=Ville
LDAPFieldTownExample=Exemple : l LDAPFieldTownExample=Exemple : l
LDAPFieldCountry=Pays
LDAPFieldCountryExample=Exemple :
LDAPFieldDescription=Description LDAPFieldDescription=Description
LDAPFieldDescriptionExample=Exemple : description LDAPFieldDescriptionExample=Exemple : description
LDAPFieldSid=SID LDAPFieldSid=SID

View File

@ -38,6 +38,9 @@ Region=R
Country=Pays Country=Pays
CountryCode=Code pays CountryCode=Code pays
Phone=Téléphone Phone=Téléphone
PhonePro=Tél pro.
PhonePerso=Tél perso.
PhoneMobile=Tél portable
Fax=Fax Fax=Fax
Zip=Code postal Zip=Code postal
Town=Ville Town=Ville

View File

@ -221,8 +221,8 @@ class Ldap
// Try in auth mode // Try in auth mode
if ($conf->global->LDAP_ADMIN_DN && $conf->global->LDAP_ADMIN_PASS) if ($conf->global->LDAP_ADMIN_DN && $conf->global->LDAP_ADMIN_PASS)
{ {
dolibarr_syslog("Ldap.class::connect_bind try authBind on ".$host." user=".$conf->global->LDAP_ADMIN_DN,LOG_DEBUG); dolibarr_syslog("Ldap.class::connect_bind try bindauth on ".$host." user=".$conf->global->LDAP_ADMIN_DN,LOG_DEBUG);
$result=$this->authBind($conf->global->LDAP_ADMIN_DN,$conf->global->LDAP_ADMIN_PASS); $result=$this->bindauth($conf->global->LDAP_ADMIN_DN,$conf->global->LDAP_ADMIN_PASS);
if ($result) if ($result)
{ {
$this->bind=$this->result; $this->bind=$this->result;
@ -287,8 +287,8 @@ class Ldap
{ {
if (! $this->result=@ldap_bind($this->connection)) if (! $this->result=@ldap_bind($this->connection))
{ {
$this->ldapErrorCode = ldap_errno( $this->connection); $this->ldapErrorCode = ldap_errno($this->connection);
$this->ldapErrorText = ldap_error( $this->connection); $this->ldapErrorText = ldap_error($this->connection);
$this->error=$this->ldapErrorCode." ".$this->ldapErrorText; $this->error=$this->ldapErrorCode." ".$this->ldapErrorText;
return false; return false;
} }
@ -304,14 +304,17 @@ class Ldap
* "cn=Directory Manager" under iPlanet. For a user, it will be something * "cn=Directory Manager" under iPlanet. For a user, it will be something
* like "uid=jbloggs,ou=People,dc=foo,dc=com". * like "uid=jbloggs,ou=People,dc=foo,dc=com".
*/ */
function authBind( $bindDn,$pass) function bindauth($bindDn,$pass)
{ {
if ( !$this->result = @ldap_bind( $this->connection,$bindDn,$pass)) { if (! $this->result = @ldap_bind( $this->connection,$bindDn,$pass))
$this->ldapErrorCode = ldap_errno( $this->connection); {
$this->ldapErrorText = ldap_error( $this->connection); $this->ldapErrorCode = ldap_errno($this->connection);
$this->ldapErrorText = ldap_error($this->connection);
$this->error=$this->ldapErrorCode." ".$this->ldapErrorText; $this->error=$this->ldapErrorCode." ".$this->ldapErrorText;
return false; return false;
} else { }
else
{
return true; return true;
} }
} }
@ -585,7 +588,7 @@ class Ldap
* \param dn DN entry key * \param dn DN entry key
* \param info Attributes array * \param info Attributes array
* \param user Objet utilisateru qui crée * \param user Objet utilisateru qui crée
* \return boolean <0 si KO, >0 si OK * \return int <0 si KO, >0 si OK
*/ */
function add($dn, $info, $user) function add($dn, $info, $user)
{ {
@ -600,6 +603,8 @@ class Ldap
if (! is_array($val)) $info[$key]=$this->ldap_utf8_encode($val); if (! is_array($val)) $info[$key]=$this->ldap_utf8_encode($val);
} }
$this->dump($dn,$info);
//print_r($info); //print_r($info);
$result=@ldap_add($this->connection, $dn, $info); $result=@ldap_add($this->connection, $dn, $info);
@ -610,7 +615,7 @@ class Ldap
/* /*
* \brief Delete a LDAP entry * \brief Delete a LDAP entry
* \param dn DN entry key * \param dn DN entry key
* \return boolean <0 si KO, >0 si OK * \return int <0 si KO, >0 si OK
*/ */
function delete($dn) function delete($dn)
{ {
@ -628,6 +633,40 @@ class Ldap
} }
/*
* \brief Dump a LDAP message to ldapinput.in file
* \param dn DN entry key
* \param info Attributes array
* \return int <0 si KO, >0 si OK
*/
function dump($dn, $info)
{
global $conf;
create_exdir($conf->ldap->dir_temp);
$file=$conf->ldap->dir_temp.'/ldapinput.in';
$fp=fopen($file,"w");
if ($fp)
{
fputs($fp, "dn: ".$dn."\n");
foreach($info as $key => $value)
{
if (! is_array($value))
{
fputs($fp, "$key: $value\n");
}
else
{
foreach($value as $valuekey => $valuevalue)
{
fputs($fp, "$key: $valuevalue\n");
}
}
}
fclose($fp);
}
}
// 2.4 Attribute methods ----------------------------------------------------- // 2.4 Attribute methods -----------------------------------------------------
/** /**
@ -680,7 +719,7 @@ class Ldap
// if the directory is AD, then bind first with the search user first // if the directory is AD, then bind first with the search user first
if ($this->serverType == "activedirectory") { if ($this->serverType == "activedirectory") {
$this->authBind($this->searchUser, $this->searchPassword); $this->bindauth($this->searchUser, $this->searchPassword);
} }
$filter = '('.$useridentifier.'='.$search.')'; $filter = '('.$useridentifier.'='.$search.')';
@ -715,25 +754,6 @@ class Ldap
return $userslist; return $userslist;
} }
/**
* Récupère le SID de l'utilisateur
* ldapuser. le login de l'utilisateur
* \deprecated
*/
function getObjectSid($ldapUser)
{
$criteria = $this->getUserIdentifier()."=$ldapUser";
$justthese = array("objectsid");
$ldapSearchResult = ldap_search($this->connection, $this->people, $criteria, $justthese);
$entry = ldap_first_entry($this->connection, $ldapSearchResult);
$ldapBinary = ldap_get_values_len ($this->connection, $entry, "objectsid");
$SIDText = $this->binSIDtoText($ldapBinary[0]);
return $SIDText;
return $ldapBinary;
}
/** /**
* Converts a little-endian hex-number to one, that 'hexdec' can convert * Converts a little-endian hex-number to one, that 'hexdec' can convert
* \deprecated * \deprecated
@ -745,26 +765,9 @@ class Ldap
return $result; return $result;
} }
/**
* Returns the textual SID
* \deprecated
*/
function binSIDtoText($binsid) {
$hex_sid=bin2hex($binsid);
$rev = hexdec(substr($hex_sid,0,2)); // Get revision-part of SID
$subcount = hexdec(substr($hex_sid,2,2)); // Get count of sub-auth entries
$auth = hexdec(substr($hex_sid,4,12)); // SECURITY_NT_AUTHORITY
$result = "$rev-$auth";
for ($x=0;$x < $subcount; $x++) {
$subauth[$x] = hexdec($this->littleEndian(substr($hex_sid,16+($x*8),8))); // get all SECURITY_NT_AUTHORITY
$result .= "-".$subauth[$x];
}
return $result;
}
/** /**
* \brief Fonction de recherche avec filtre * \brief Fonction de recherche avec filtre
* \remarks this->connection doit etre défini donc la methode bind ou authbind doit avoir deja été appelée * \remarks this->connection doit etre défini donc la methode bind ou bindauth doit avoir deja été appelée
* \param checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com) * \param checkDn DN de recherche (Ex: ou=users,cn=my-domain,cn=com)
* \param filter Filtre de recherche (ex: (sn=nom_personne) ) * \param filter Filtre de recherche (ex: (sn=nom_personne) )
* \return array Tableau des reponses * \return array Tableau des reponses
@ -778,7 +781,7 @@ class Ldap
// if the directory is AD, then bind first with the search user first // if the directory is AD, then bind first with the search user first
if ($this->serverType == "activedirectory") { if ($this->serverType == "activedirectory") {
$this->authBind($this->searchUser, $this->searchPassword); $this->bindauth($this->searchUser, $this->searchPassword);
} }
$this->result = @ldap_search($this->connection, $checkDn, $filter); $this->result = @ldap_search($this->connection, $checkDn, $filter);
@ -807,7 +810,7 @@ class Ldap
// if the directory is AD, then bind first with the search user first // if the directory is AD, then bind first with the search user first
if ($this->serverType == "activedirectory") { if ($this->serverType == "activedirectory") {
$this->authBind($this->searchUser, $this->searchPassword); $this->bindauth($this->searchUser, $this->searchPassword);
} }
$userIdentifier = $this->getUserIdentifier(); $userIdentifier = $this->getUserIdentifier();
@ -877,23 +880,6 @@ class Ldap
} }
} }
/**
* \brief permet d'enlever les accents d'une chaine.
* \param str
* \return string
*/
function dolibarr_ldap_unacc($str)
{
$stu = ereg_replace("é","e",$str);
$stu = ereg_replace("è","e",$stu);
$stu = ereg_replace("ê","e",$stu);
$stu = ereg_replace("à","a",$stu);
$stu = ereg_replace("ç","c",$stu);
$stu = ereg_replace("ï","i",$stu);
$stu = ereg_replace("ä","a",$stu);
return $stu;
}
/** /**
* \brief UserAccountControl Flgs to more human understandable form... * \brief UserAccountControl Flgs to more human understandable form...
* *

View File

@ -442,7 +442,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
print '<form action="fiche.php" method="post" name="createuser">'; print '<form action="fiche.php" method="post" name="createuser">';
print '<input type="hidden" name="action" value="add">'; print '<input type="hidden" name="action" value="add">';
if ($ldap_SID) print '<input type="hidden" name="ldap_sid" value="'.$ldap_SID.'">'; if ($ldap_sid) print '<input type="hidden" name="ldap_sid" value="'.$ldap_sid.'">';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
@ -488,7 +488,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
} }
print '</td></tr>'; print '</td></tr>';
if (!$ldap_SID) if (!$ldap_sid)
{ {
$generated_password=''; $generated_password='';
if ($conf->global->USER_PASSWORD_GENERATED) if ($conf->global->USER_PASSWORD_GENERATED)
@ -505,7 +505,7 @@ if (($action == 'create') || ($action == 'adduserldap'))
// Mot de passe // Mot de passe
print '<tr><td valign="top">'.$langs->trans("Password").'</td>'; print '<tr><td valign="top">'.$langs->trans("Password").'</td>';
print '<td>'; print '<td>';
if ($ldap_SID) if ($ldap_sid)
{ {
print 'mot de passe du domaine'; print 'mot de passe du domaine';
} }

View File

@ -479,6 +479,11 @@ alter table llx_facturedet_rec add column total_ht real;
alter table llx_facturedet_rec add column total_tva real; alter table llx_facturedet_rec add column total_tva real;
alter table llx_facturedet_rec add column total_ttc real; alter table llx_facturedet_rec add column total_ttc real;
alter table llx_adherent add column phone varchar(30) after email;
alter table llx_adherent add column phone_perso varchar(30) after phone;
alter table llx_adherent add column phone_mobile varchar(30) after phone_perso;
update llx_facture set fk_facture_source=null where fk_facture_source is not null and type = 0; update llx_facture set fk_facture_source=null where fk_facture_source is not null and type = 0;

View File

@ -22,36 +22,42 @@
-- =================================================================== -- ===================================================================
-- --
-- statut -- statut
-- 0 : non adherent -- -1 : brouillon
-- 1 : adherent -- 0 : resilie
-- 1 : valide
create table llx_adherent create table llx_adherent
( (
rowid integer AUTO_INCREMENT PRIMARY KEY, rowid integer AUTO_INCREMENT PRIMARY KEY,
tms timestamp, nom varchar(50),
statut smallint NOT NULL DEFAULT 0, prenom varchar(50),
public smallint NOT NULL DEFAULT 0, -- certain champ de la fiche sont ils public ou pas ? login varchar(50) NOT NULL, -- login
pass varchar(50), -- password
fk_adherent_type smallint, fk_adherent_type smallint,
morphy enum('mor','phy') NOT NULL, -- personne morale / personne physique morphy enum('mor','phy') NOT NULL, -- personne morale / personne physique
datevalid datetime, -- date de validation
datec datetime, -- date de creation
prenom varchar(50),
nom varchar(50),
societe varchar(50), societe varchar(50),
adresse text, adresse text,
cp varchar(30), cp varchar(30),
ville varchar(50), ville varchar(50),
pays varchar(50), pays varchar(50),
email varchar(255), email varchar(255),
login varchar(50) NOT NULL, -- login utilise pour editer sa fiche phone varchar(30),
pass varchar(50), -- pass utilise pour editer sa fiche phone_perso varchar(30),
phone_mobile varchar(30),
naiss date, -- date de naissance naiss date, -- date de naissance
photo varchar(255), -- url vers la photo de l'adherent photo varchar(255), -- url vers photo
fk_user_author integer NOT NULL,
fk_user_mod integer NOT NULL, statut smallint NOT NULL DEFAULT 0,
fk_user_valid integer NOT NULL, public smallint NOT NULL DEFAULT 0, -- certain champ de la fiche sont ils public ou pas ?
datefin datetime, -- date de fin de validité de la cotisation datefin datetime, -- date de fin de validité de la cotisation
note text, note text,
datevalid datetime, -- date de validation
datec datetime, -- date de creation
tms timestamp, -- date de modification
fk_user_author integer NOT NULL,
fk_user_mod integer NOT NULL,
fk_user_valid integer NOT NULL
UNIQUE INDEX(login) UNIQUE INDEX(login)
)type=innodb; )type=innodb;

View File

@ -72,8 +72,13 @@ if ($resql)
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$ldap=new Ldap();
$ldap->connect_bind();
while ($i < $num) while ($i < $num)
{ {
$ldap->error="";
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$member = new Adherent($db); $member = new Adherent($db);
@ -81,7 +86,10 @@ if ($resql)
print $langs->trans("UpdateMember")." rowid=".$member->id." ".$member->fullname; print $langs->trans("UpdateMember")." rowid=".$member->id." ".$member->fullname;
$result=$member->update_ldap($user); $info=$member->_load_ldap_info();
$dn=$member->_load_ldap_dn($info);
$result=$ldap->update($dn,$info,$user);
if ($result > 0) if ($result > 0)
{ {
print " - ".$langs->trans("OK"); print " - ".$langs->trans("OK");
@ -89,12 +97,15 @@ if ($resql)
else else
{ {
$error++; $error++;
print " - ".$langs->trans("KO").' - '.$member->error; print " - ".$langs->trans("KO").' - '.$ldap->error;
} }
print "\n"; print "\n";
$i++; $i++;
} }
$ldap->unbind();
$ldap->close();
} }
else else
{ {

View File

@ -0,0 +1,155 @@
<?PHP
/* Copyright (C) 2005 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2006 Laurent Destailleur <eldy@users.sourceforge.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
* $Source$
*/
/**
\file scripts/adherents/sync_member_ldap2dolibarr.php
\ingroup ldap adherent
\brief Script de mise a jour des adherents dans Dolibarr depuis LDAP
*/
// Test si mode batch
$sapi_type = php_sapi_name();
$script_file=__FILE__;
if (eregi('([^\\\/]+)$',$script_file,$reg)) $script_file=$reg[1];
if (substr($sapi_type, 0, 3) == 'cgi') {
echo "Erreur: Vous utilisez l'interpreteur PHP pour le mode CGI. Pour executer $script_file en ligne de commande, vous devez utiliser l'interpreteur PHP pour le mode CLI.\n";
exit;
}
if (! isset($argv[1]) || ! is_numeric($argv[1])) {
print "Usage: $script_file id_member_type\n";
exit;
}
$typeid=$argv[1];
// Recupere env dolibarr
$version='$Revision$';
$path=eregi_replace($script_file,'',$_SERVER["PHP_SELF"]);
require_once($path."../../htdocs/master.inc.php");
require_once(DOL_DOCUMENT_ROOT."/lib/ldap.class.php");
require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php");
$error=0;
print "***** $script_file ($version) *****\n";
if ($argv[2]) $conf->global->LDAP_SERVER_HOST=$argv[2];
if ($argv[2]) $conf->global->LDAP_SERVER_HOST=$argv[2];
/*
if (! $conf->global->LDAP_MEMBER_ACTIVE)
{
print $langs->trans("LDAPSynchronizationNotSetupInDolibarr");
exit 1;
}
*/
$ldap = new Ldap();
$result = $ldap->connect_bind();
if ($result >= 0)
{
$justthese=array();
$ldaprecords = $ldap->search($conf->global->LDAP_MEMBER_DN, '('.$conf->global->LDAP_KEY_MEMBERS.'=*)');
if (is_array($ldaprecords))
{
$db->begin();
foreach ($ldaprecords as $key => $ldapuser)
{
if ($key == 'count') continue;
$member = new Adherent($db);
// Propriete membre
$member->prenom=$ldapuser[$conf->global->LDAP_FIELD_FIRSTNAME][0];
$member->nom=$ldapuser[$conf->global->LDAP_FIELD_NAME][0];
$member->fullname=($ldapuser[$conf->global->LDAP_FIELD_FULLNAME][0] ? $ldapuser[$conf->global->LDAP_FIELD_FULLNAME][0] : trim($member->prenom." ".$member->nom));
//$member->societe;
//$member->adresse=$ldapuser[$conf->global->LDAP_FIELD_FULLNAME]
//$member->cp;
//$member->ville;
//$member->pays_id;
//$member->pays_code;
//$member->pays;
//$member->morphy;
$member->email=$ldapuser[$conf->global->LDAP_FIELD_EMAIL][0];
//$member->public;
//$member->commentaire;
$member->statut=-1;
$member->login=$ldapuser[$conf->global->LDAP_FIELD_LOGIN][0];
//$member->pass;
//$member->naiss;
//$member->photo;
// Propriete type membre
$member->typeid=$typeid;
//----------------------------
// YOUR OWN RULES HERE
//----------------------------
//----------------------------
// END
//----------------------------
print $langs->trans("MemberCreate").' no '.$key.': '.$member->fullname."\n";
print_r($member);
exit;
// $member->create();
$error++;
}
if (! $error)
{
$db->commit();
}
else
{
$db->rollback();
}
}
else
{
dolibarr_print_error('',$ldap->error);
$error++;
}
}
else
{
dolibarr_print_error('',$ldap->error);
$error++;
}
return $error;
?>

View File

@ -72,8 +72,13 @@ if ($resql)
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$ldap=new Ldap();
$ldap->connect_bind();
while ($i < $num) while ($i < $num)
{ {
$ldap->error="";
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$contact = new Contact($db); $contact = new Contact($db);
@ -82,9 +87,6 @@ if ($resql)
print $langs->trans("UpdateContact")." rowid=".$contact->id." ".$contact->fullname; print $langs->trans("UpdateContact")." rowid=".$contact->id." ".$contact->fullname;
$ldap=new Ldap();
$ldap->connect_bind();
$info=$contact->_load_ldap_info(); $info=$contact->_load_ldap_info();
$dn=$contact->_load_ldap_dn($info); $dn=$contact->_load_ldap_dn($info);
@ -102,6 +104,9 @@ if ($resql)
$i++; $i++;
} }
$ldap->unbind();
$ldap->close();
} }
else else
{ {

View File

@ -72,8 +72,13 @@ if ($resql)
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$ldap=new Ldap();
$ldap->connect_bind();
while ($i < $num) while ($i < $num)
{ {
$ldap->error="";
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$fgroup = new UserGroup($db); $fgroup = new UserGroup($db);
@ -82,9 +87,6 @@ if ($resql)
print $langs->trans("UpdateGroup")." rowid=".$fgroup->id." ".$fgroup->nom; print $langs->trans("UpdateGroup")." rowid=".$fgroup->id." ".$fgroup->nom;
$ldap=new Ldap();
$ldap->connect_bind();
$info=$fgroup->_load_ldap_info(); $info=$fgroup->_load_ldap_info();
$dn=$fgroup->_load_ldap_dn($info); $dn=$fgroup->_load_ldap_dn($info);
@ -96,12 +98,15 @@ if ($resql)
else else
{ {
$error++; $error++;
print " - ".$langs->trans("KO").' - '.$fgroup->error; print " - ".$langs->trans("KO").' - '.$ldap->error;
} }
print "\n"; print "\n";
$i++; $i++;
} }
$ldap->unbind();
$ldap->close();
} }
else else
{ {

View File

@ -72,8 +72,13 @@ if ($resql)
$num = $db->num_rows($resql); $num = $db->num_rows($resql);
$i = 0; $i = 0;
$ldap=new Ldap();
$ldap->connect_bind();
while ($i < $num) while ($i < $num)
{ {
$ldap->error="";
$obj = $db->fetch_object($resql); $obj = $db->fetch_object($resql);
$fuser = new User($db); $fuser = new User($db);
@ -82,9 +87,6 @@ if ($resql)
print $langs->trans("UpdateUser")." rowid=".$fuser->id." ".$fuser->fullname; print $langs->trans("UpdateUser")." rowid=".$fuser->id." ".$fuser->fullname;
$ldap=new Ldap();
$ldap->connect_bind();
$info=$fuser->_load_ldap_info(); $info=$fuser->_load_ldap_info();
$dn=$fuser->_load_ldap_dn($info); $dn=$fuser->_load_ldap_dn($info);
@ -96,12 +98,15 @@ if ($resql)
else else
{ {
$error++; $error++;
print " - ".$langs->trans("KO").' - '.$fuser->error; print " - ".$langs->trans("KO").' - '.$ldap->error;
} }
print "\n"; print "\n";
$i++; $i++;
} }
$ldap->unbind();
$ldap->close();
} }
else else
{ {