';
}
-
-
- if ($conf->global->LDAP_SERVER_HOST && $conf->global->LDAP_ADMIN_DN && $conf->global->LDAP_ADMIN_PASS && $_GET["action"] == 'test')
+
+ if ($_GET["action"] == 'test')
{
- $ldap = New AuthLdap();
- // Test ldap_connect
- // ce test n'est pas fiable car une ressource est constamment retournée
- // il faut se fier au test ldap_bind
+ $ldap = new AuthLdap(); // Les parametres sont passés et récupérés via $conf
+
$ds = $ldap->connect();
if ($ds)
{
- print img_picto('','info');
- print $langs->trans("LDAPTestOK").' ';
+ // Test ldap_bind
+ $bind = $ldap->bind();
+ if ($bind)
+ {
+ print img_picto('','info').' ';
+ print ''.$langs->trans("LDAPTCPConnectOK",$conf->global->LDAP_SERVER_HOST,$conf->global->LDAP_SERVER_PORT).' ';
+ }
+ else
+ {
+ print img_picto('','error').' ';
+ print $langs->trans("LDAPTCPConnectKO",$conf->global->LDAP_SERVER_HOST,$conf->global->LDAP_SERVER_PORT).' : ';
+ print $ldap->ldapErrorCode." - ".$ldap->ldapErrorText;
+ print " ";
+ }
+
+ // Test ldap_getversion
+ if (($ldap->getVersion() == 3))
+ {
+ print img_picto('','info').' ';
+ print ''.$langs->trans("LDAPSetupForVersion3").' ';
+ }
+ else
+ {
+ print img_picto('','info').' ';
+ print $langs->trans("LDAPSetupForVersion2").' ';
+ }
+
+ // Test ldap_unbind
+ $unbind = $ldap->unbind();
+
+ if ($unbind)
+ {
+ print img_picto('','info').' ';
+ print ''.$langs->trans("LDAPUnbindSuccessfull").' ';
+ }
+ else
+ {
+ print img_picto('','error').' ';
+ print $langs->trans("LDAPUnbindFailed");
+ print " ";
+ print $ldap->ldapErrorCode." - ".$ldap->ldapErrorText;
+ }
+
}
else
{
- print img_picto('','alerte');
- print $langs->trans("LDAPTestKO").' ';
+ print img_picto('','error').' ';
+ print $langs->trans("LDAPTCPConnectKO",$conf->global->LDAP_SERVER_HOST,$conf->global->LDAP_SERVER_PORT).' ';
print " ";
print $ldap->ldapErrorCode." - ".$ldap->ldapErrorText;
print " ";
}
- if ($ds)
- {
- // Test ldap_getversion
- if (($ldap->getVersion() == 3))
- {
- print img_picto('','info');
- print $langs->trans("LDAPSetupForVersion3").' ';
- }
- else
- {
- print img_picto('','info');
- print $langs->trans("LDAPSetupForVersion2").' ';
- }
-
- // Test ldap_bind
- $bind = $ldap->bind();
-
- if ($bind)
- {
- print img_picto('','info');
- print "Connexion au dn $dn réussi ";
- }
- else
- {
- print img_picto('','alerte');
- print "Connexion au dn $dn raté : ";
- print $ldap->ldapErrorCode." - ".$ldap->ldapErrorText;
- print " ";
- }
-
- // Test ldap_unbind
- $unbind = $ldap->unbind();
-
- if ($unbind)
- {
- print img_picto('','info');
- print "Déconnection du dn $dn réussi ";
- }
- else
- {
- print img_picto('','alerte');
- print "Déconnection du dn $dn raté";
- print " ";
- print $ldap->ldapErrorCode." - ".$ldap->ldapErrorText;
- }
- }
}
}
$db->close();
llxFooter('$Date$ - $Revision$');
-
?>
diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php
new file mode 100644
index 00000000000..abc9d41f305
--- /dev/null
+++ b/htdocs/admin/ldap_contacts.php
@@ -0,0 +1,140 @@
+
+ * Copyright (C) 2004 Sebastien Di Cintio
+ * Copyright (C) 2004 Benoit Mortier
+ * Copyright (C) 2005 Regis Houssin
+ * Copyright (C) 2006 Laurent Destailleur
+ *
+ * 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 htdocs/admin/ldap.php
+ \ingroup ldap
+ \brief Page d'administration/configuration du module Ldap
+ \version $Revision$
+ \remarks Exemple configuration :
+ LDAP_SERVER_HOST Serveur LDAP 192.168.1.50
+ LDAP_SERVER_PORT Port LDAP 389
+ LDAP_ADMIN_DN Administrateur LDAP cn=adminldap,dc=societe,dc=com
+ LDAP_ADMIN_PASS Mot de passe xxxxxxxx
+ LDAP_USER_DN DN des utilisateurs ou=users,dc=societe,dc=com
+ LDAP_GROUP_DN DN des groupes ou=groups,dc=societe,dc=com
+ LDAP_CONTACT_DN DN des contacts ou=contacts,dc=societe,dc=com
+ LDAP_SERVER_TYPE Type Openldap
+*/
+
+require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/lib/authldap.lib.php");
+
+$langs->load("admin");
+
+if (!$user->admin)
+ accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+if ($_GET["action"] == 'setvalue' && $user->admin)
+{
+
+}
+
+
+
+/*
+ * Visu
+ */
+
+llxHeader();
+
+print_fiche_titre($langs->trans("LDAPSetup"),'','setup');
+
+// Test si fonction LDAP actives
+if (! function_exists("ldap_connect"))
+{
+ $mesg=$langs->trans("LDAPFunctionsNotAvailableOnPHP");
+}
+
+if ($mesg) print '
'.$mesg.'
';
+else print ' ';
+
+
+// Onglets
+$h = 0;
+
+$head[$h][0] = DOL_URL_ROOT."/admin/ldap.php";
+$head[$h][1] = $langs->trans("LDAPGlobalParameters");
+$h++;
+
+if ($conf->global->LDAP_SYNCHRO_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_users.php";
+ $head[$h][1] = $langs->trans("LDAPUsersAndGroupsSynchro");
+ $h++;
+}
+
+if ($conf->global->LDAP_CONTACT_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_contacts.php";
+ $head[$h][1] = $langs->trans("LDAPContactsSynchro");
+ $hselected=$h;
+ $h++;
+}
+
+if ($conf->global->LDAP_MEMBERS_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_members.php";
+ $head[$h][1] = $langs->trans("LDAPMembersSynchro");
+ $h++;
+}
+
+dolibarr_fiche_head($head, $hselected, $langs->trans("LDAP"));
+
+
+print '';
+
+print '';
+
+
+$db->close();
+
+llxFooter('$Date$ - $Revision$');
+
+?>
diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php
new file mode 100644
index 00000000000..3a64592558a
--- /dev/null
+++ b/htdocs/admin/ldap_users.php
@@ -0,0 +1,283 @@
+
+ * Copyright (C) 2004 Sebastien Di Cintio
+ * Copyright (C) 2004 Benoit Mortier
+ * Copyright (C) 2005 Regis Houssin
+ * Copyright (C) 2006 Laurent Destailleur
+ *
+ * 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 htdocs/admin/ldap.php
+ \ingroup ldap
+ \brief Page d'administration/configuration du module Ldap
+ \version $Revision$
+ \remarks Exemple configuration :
+ LDAP_SERVER_HOST Serveur LDAP 192.168.1.50
+ LDAP_SERVER_PORT Port LDAP 389
+ LDAP_ADMIN_DN Administrateur LDAP cn=adminldap,dc=societe,dc=com
+ LDAP_ADMIN_PASS Mot de passe xxxxxxxx
+ LDAP_USER_DN DN des utilisateurs ou=users,dc=societe,dc=com
+ LDAP_GROUP_DN DN des groupes ou=groups,dc=societe,dc=com
+ LDAP_CONTACT_DN DN des contacts ou=contacts,dc=societe,dc=com
+ LDAP_SERVER_TYPE Type Openldap
+*/
+
+require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/lib/authldap.lib.php");
+
+$langs->load("admin");
+
+if (!$user->admin)
+ accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+if ($_GET["action"] == 'setvalue' && $user->admin)
+{
+ if (! dolibarr_set_const($db, 'LDAP_USER_DN',$_POST["user"]))
+ {
+ print $db->error();
+ }
+ if (! dolibarr_set_const($db, 'LDAP_GROUP_DN',$_POST["group"]))
+ {
+ print $db->error();
+ }
+ if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN',$_POST["fieldlogin"]))
+ {
+ print $db->error();
+ }
+ if (! dolibarr_set_const($db, 'LDAP_FILTER_CONNECTION',$_POST["filterconnection"]))
+ {
+ print $db->error();
+ }
+}
+
+
+
+/*
+ * Visu
+ */
+
+llxHeader();
+
+print_fiche_titre($langs->trans("LDAPSetup"),'','setup');
+
+// Test si fonction LDAP actives
+if (! function_exists("ldap_connect"))
+{
+ $mesg=$langs->trans("LDAPFunctionsNotAvailableOnPHP");
+}
+
+if ($mesg) print '
'.$mesg.'
';
+else print ' ';
+
+
+// Onglets
+$h = 0;
+
+$head[$h][0] = DOL_URL_ROOT."/admin/ldap.php";
+$head[$h][1] = $langs->trans("LDAPGlobalParameters");
+$h++;
+
+if ($conf->global->LDAP_SYNCHRO_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_users.php";
+ $head[$h][1] = $langs->trans("LDAPUsersAndGroupsSynchro");
+ $hselected=$h;
+ $h++;
+}
+
+if ($conf->global->LDAP_CONTACT_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_contacts.php";
+ $head[$h][1] = $langs->trans("LDAPContactsSynchro");
+ $h++;
+}
+
+if ($conf->global->LDAP_MEMBERS_ACTIVE)
+{
+ $head[$h][0] = DOL_URL_ROOT."/admin/ldap_members.php";
+ $head[$h][1] = $langs->trans("LDAPMembersSynchro");
+ $h++;
+}
+
+dolibarr_fiche_head($head, $hselected, $langs->trans("LDAP"));
+
+
+print '';
+
+print '';
+
+
+
+$db->close();
+
+llxFooter('$Date$ - $Revision$');
+
+?>
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index 5ba866152bd..ae6c306617a 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -491,11 +491,15 @@ AddSubscriptionIntoAccount=Add subscriptions into bank or cash account, of bank
AdherentMailRequired=EMail required to create a new member
##### LDAP setup #####
LDAPSetup=LDAP Setup
+LDAPGlobalParameters=Global parameters
+LDAPUsersAndGroupsSynchro=Users/groups synchro
+LDAPContactsSynchro=Contacts synchro
+LDAPSynchronization=LDAP synchronisation
LDAPFunctionsNotAvailableOnPHP=LDAP functions are not availbale on your PHP
-LDAPSynchronizeUsersAndGroup=Synchronize Dolibarr or LDAP users and groups
+LDAPSynchronizeUsersAndGroup=Synchronize Dolibarr users and groups with LDAP
LDAPToDolibarr=LDAP -> Dolibarr
DolibarrToLDAP=Dolibarr -> LDAP
-LDAPSynchronizeContacts=Synchronize Dolibarr contacts to LDAP
+LDAPSynchronizeContacts=Synchronize Dolibarr contacts with LDAP
LDAPTypeExample=OpenLdap, Egroupware or Active Directory
LDAPPrimaryServer=LDAP primary server
LDAPSecondaryServer=LDAP secondary server
@@ -523,16 +527,20 @@ LDAPDnContactActiveExample=Activated/Unactivated synchronization
LDAPContactDn=Dolibarr contacts' DN
LDAPContactDnExample=Complete DN (ex: ou=contacts,dc=society,dc=com)
LDAPTestConnect=Test LDAP connection
-LDAPTestOK=Connect to LDAP server successful
-LDAPTestKO=Connect to LDAP server failed
+LDAPTCPConnectOK=TCP connect to LDAP server successful (Server=%s, Port=%s)
+LDAPTCPConnectKO=TCP connect to LDAP server failed (Server=%s, Port=%s)
+LDAPUnbindSuccessfull=Disconnect successfull
+LDAPUnbindFailed=Disconnect failed
+LDAPConnectToDNSuccessfull=Connection au DN (%s) réussie
+LDAPConnectToDNFailed=Connection au DN (%s) échouée
LDAPSetupForVersion3=LDAP server configured for version 3
LDAPSetupForVersion2=LDAP server configured for version 2
-LDAPFieldLogin=Login attribute
+LDAPFieldLoginUnix=Login (unix)
LDAPFieldLoginExample=Default attribute : uid
LDAPFilterConnection=Search filter
LDAPFilterConnectionExample=Default filter : &(objectClass=user)(objectCategory=person)
LDAPAttributes=LDAP attributes
-LDAPFieldLoginSamba=Login
+LDAPFieldLoginSamba=Login (samba, activedirectory)
LDAPFieldLoginSambaExample=Default attribute : samaccountname (Samba and ActiveDirectory)
LDAPFieldName=Name
LDAPFieldNameExample=Default attribute : sn
@@ -546,6 +554,8 @@ LDAPFieldFax=Fax number
LDAPFieldFaxExample=Default attribute : facsimiletelephonenumber
LDAPFieldMobile=Cellular phone
LDAPFieldMobileExample=Default attribute : mobile
+LDAPParametersAreStillHardCoded=LDAP parametres are still hardcoded (in contact class)
+LDAPSetupNotComplete=LDAP setup not complete (go on others tabs)
##### Products #####
ProductSetup=Products module setup
NumberOfProductShowInSelect=Max number of products in combos select lists (0=no limit)
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 843cfe45d8a..48fec98d506 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -491,11 +491,15 @@ AddSubscriptionIntoAccount=Enregistrer cotisations dans compte bancaire ou caiss
AdherentMailRequired=EMail obligatoire pour créer un nouvel adhérent
##### LDAP setup #####
LDAPSetup=Configuration du module LDAP
+LDAPGlobalParameters=Paramètres globals
+LDAPUsersAndGroupsSynchro=Synchro utilisateurs/groupes
+LDAPContactsSynchro=Synchro contacts
+LDAPSynchronization=Synchronisation LDAP
LDAPFunctionsNotAvailableOnPHP=Les fonctions LDAP ne sont pas disponibles sur votre PHP
-LDAPSynchronizeUsersAndGroup=Synchronisation des utilisateurs et groupes Dolibarr ou LDAP
+LDAPSynchronizeUsersAndGroup=Synchronisation des utilisateurs et groupes Dolibarr avec LDAP
LDAPToDolibarr=LDAP -> Dolibarr
DolibarrToLDAP=Dolibarr -> LDAP
-LDAPSynchronizeContacts=Synchronisation des contacts Dolibarr vers LDAP
+LDAPSynchronizeContacts=Synchronisation des contacts Dolibarr avec LDAP
LDAPTypeExample=OpenLdap, Egroupware ou Active Directory
LDAPPrimaryServer=Serveur primaire
LDAPSecondaryServer=Serveur secondaire
@@ -523,16 +527,20 @@ LDAPDnContactActiveExample=Synchronisation activ
LDAPContactDn=DN des contacts Dolibarr
LDAPContactDnExample=DN complet (ex: ou=contacts,dc=societe,dc=com)
LDAPTestConnect=Tester la connexion LDAP
-LDAPTestOK=Connexion au serveur LDAP réussie
-LDAPTestKO=Connexion au serveur LDAP echouée
+LDAPTCPConnectOK=Connexion TCP au serveur LDAP réussie (Server=%s, Port=%s)
+LDAPTCPConnectKO=Connexion TCP au serveur LDAP échouée (Server=%s, Port=%s)
+LDAPUnbindSuccessfull=Déconnection réussie
+LDAPUnbindFailed=Déconnection échouée
+LDAPConnectToDNSuccessfull=Connection au DN (%s) réussie
+LDAPConnectToDNFailed=Connection au DN (%s) échouée
LDAPSetupForVersion3=Serveur LDAP configuré en version 3
LDAPSetupForVersion2=Serveur LDAP configuré en version 2
-LDAPFieldLogin=Attribut du Login
+LDAPFieldLoginUnix=Login (unix)
LDAPFieldLoginExample=Attribut par défaut : uid
LDAPFilterConnection=Filtre de recherche
LDAPFilterConnectionExample=Filtre par défaut : &(objectClass=user)(objectCategory=person)
LDAPAttributes=Attributs LDAP
-LDAPFieldLoginSamba=Login
+LDAPFieldLoginSamba=Login (samba, activedirectory)
LDAPFieldLoginSambaExample=Attribut par défaut : samaccountname (Samba et ActiveDirectory)
LDAPFieldName=Nom
LDAPFieldNameExample=Attribut par défaut : sn
@@ -546,6 +554,8 @@ LDAPFieldFax=Num
LDAPFieldFaxExample=Attribut par défaut : facsimiletelephonenumber
LDAPFieldMobile=Téléphone portable
LDAPFieldMobileExample=Attribut par défaut : mobile
+LDAPParametersAreStillHardCoded=Les parametres LDAP sont codés en dur (dans classe contact)
+LDAPSetupNotComplete=Configuration LDAP incomplète (à compléter sur les autres onglets)
##### Products #####
ProductSetup=Configuration du module Produits
NumberOfProductShowInSelect=Nombre de produits max dans les listes déroulantes (0=aucune limite)