diff --git a/htdocs/admin/ldap.php b/htdocs/admin/ldap.php index 30810edde44..fd9dbb74b64 100644 --- a/htdocs/admin/ldap.php +++ b/htdocs/admin/ldap.php @@ -58,6 +58,7 @@ if ($_GET["action"] == 'setvalue' && $user->admin) if (! dolibarr_set_const($db, 'LDAP_SERVER_USE_TLS',$_POST["usetls"])) $error++; if (! dolibarr_set_const($db, 'LDAP_CONTACT_ACTIVE',$_POST["activecontact"])) $error++; if (! dolibarr_set_const($db, 'LDAP_SYNCHRO_ACTIVE',$_POST["activesynchro"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_MEMBERS_ACTIVE',$_POST["activemembers"])) $error++; if ($error) { @@ -145,14 +146,28 @@ if ($conf->global->LDAP_SYNCHRO_ACTIVE && ! $conf->global->LDAP_USER_DN) print ''; // Synchro contact active -$var=!$var; -print ''.$langs->trans("LDAPDnContactActive").''; -$arraylist=array(); -$arraylist['0']=$langs->trans("No"); -$arraylist['1']=$langs->trans("DolibarrToLDAP"); -$html->select_array('activecontact',$arraylist,$conf->global->LDAP_CONTACT_ACTIVE); -print ''.$langs->trans("LDAPDnContactActiveExample").''; +if ($conf->societe->enabled) +{ + $var=!$var; + print ''.$langs->trans("LDAPDnContactActive").''; + $arraylist=array(); + $arraylist['0']=$langs->trans("No"); + $arraylist['1']=$langs->trans("DolibarrToLDAP"); + $html->select_array('activecontact',$arraylist,$conf->global->LDAP_CONTACT_ACTIVE); + print ''.$langs->trans("LDAPDnContactActiveExample").''; +} +// Synchro adherentt active +if ($conf->adherent->enabled) +{ + $var=!$var; + print ''.$langs->trans("LDAPDnMemberActive").''; + $arraylist=array(); + $arraylist['0']=$langs->trans("No"); + $arraylist['1']=$langs->trans("DolibarrToLDAP"); + $html->select_array('activemembers',$arraylist,$conf->global->LDAP_MEMBERS_ACTIVE); + print ''.$langs->trans("LDAPDnMemberActiveExample").''; +} print ''; print ''.$langs->trans("Parameter").''; diff --git a/htdocs/admin/ldap_contacts.php b/htdocs/admin/ldap_contacts.php index 8f852299486..aae2f5114ed 100644 --- a/htdocs/admin/ldap_contacts.php +++ b/htdocs/admin/ldap_contacts.php @@ -24,7 +24,7 @@ */ /** - \file htdocs/admin/ldap.php + \file htdocs/admin/ldap_contacts.php \ingroup ldap \brief Page d'administration/configuration du module Ldap \version $Revision$ diff --git a/htdocs/admin/ldap_members.php b/htdocs/admin/ldap_members.php new file mode 100644 index 00000000000..9c01d4ac93a --- /dev/null +++ b/htdocs/admin/ldap_members.php @@ -0,0 +1,286 @@ + + * 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_members.php + \ingroup ldap adherent + \brief Page d'administration/configuration du module Ldap adherent + \version $Revision$ +*/ + +require("./pre.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/adherent.class.php"); +require_once(DOL_DOCUMENT_ROOT."/adherents/adherent_type.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/authldap.lib.php"); + +$langs->load("admin"); + +if (!$user->admin) + accessforbidden(); + + +/* + * Actions + */ + +if ($_GET["action"] == 'setvalue' && $user->admin) +{ + $error=0; + if (! dolibarr_set_const($db, 'LDAP_MEMBER_DN',$_POST["user"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_MEMBER_TYPE_DN',$_POST["group"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN',$_POST["fieldlogin"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_LOGIN_SAMBA',$_POST["fieldloginsamba"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_NAME',$_POST["fieldname"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_FIRSTNAME',$_POST["fieldfirstname"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_MAIL',$_POST["fieldmail"])) $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_MOBILE',$_POST["fieldmobile"])) $error++; + + if ($error) + { + dolibarr_print_error($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"); + $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"); + $hselected=$h; + $h++; +} + + +dolibarr_fiche_head($head, $hselected, $langs->trans("LDAP")); + +print $langs->trans("LDAPDescMembers").'
'; +print '
'; + + +print '
'; + +print ''; + +$var=true; +$html=new Form($db); + + +print ''; +print ''; +print "\n"; + +// DN Pour les adherents +$var=!$var; +print ''; + +// DN pour les types +/* +$var=!$var; +print ''; +*/ + +// Filtre +/* +$var=!$var; +print ''; +*/ + +// Name +$var=!$var; +print ''; + +// Firstname +$var=!$var; +print ''; + +// Login unix +$var=!$var; +print ''; + +// Login samba +$var=!$var; +print ''; + +// Mail +$var=!$var; +print ''; + +// Phone +$var=!$var; +print ''; + +// Fax +$var=!$var; +print ''; + +// Mobile +$var=!$var; +print ''; + +$var=!$var; +print ''; +print '
'.$langs->trans("LDAPSynchronizeMembers").'
'.$langs->trans("LDAPMemberDn").picto_required().''; +print ''; +print ''.$langs->trans("LDAPMemberDnExample").'
'.$langs->trans("LDAPMemberTypeDn").picto_required().''; +print ''; +print ''.$langs->trans("LDAPMemberTypeDnExample").'
'.$langs->trans("LDAPFilterConnection").picto_required().''; +print ''; +print ''.$langs->trans("LDAPFilterConnectionExample").'
'.$langs->trans("LDAPFieldName").picto_required().''; +print ''; +print ''.$langs->trans("LDAPFieldNameExample").'
'.$langs->trans("LDAPFieldFirstName").''; +print ''; +print ''.$langs->trans("LDAPFieldFirstNameExample").'
'.$langs->trans("LDAPFieldLoginUnix").''; +print ''; +print ''.$langs->trans("LDAPFieldLoginExample").'
'.$langs->trans("LDAPFieldLoginSamba").''; +print ''; +print ''.$langs->trans("LDAPFieldLoginSambaExample").'
'.$langs->trans("LDAPFieldMail").''; +print ''; +print ''.$langs->trans("LDAPFieldMailExample").'
'.$langs->trans("LDAPFieldPhone").''; +print ''; +print ''.$langs->trans("LDAPFieldPhoneExample").'
'.$langs->trans("LDAPFieldFax").''; +print ''; +print ''.$langs->trans("LDAPFieldFaxExample").'
'.$langs->trans("LDAPFieldMobile").''; +print ''; +print ''.$langs->trans("LDAPFieldMobileExample").'
'; + +print '
'; + +print ''; + +print info_admin($langs->trans("LDAPDescValues")); + +/* + * Test de la connexion + */ +if (function_exists("ldap_connect")) +{ + if ($conf->global->LDAP_SERVER_HOST && $conf->global->LDAP_MEMBERS_ACTIVE) + { + print '
'; + print ''.$langs->trans("LDAPTestSynchroMember").''; +// print ''.$langs->trans("LDAPTestSynchroTypeMember").''; + print '

'; + } + + if ($_GET["action"] == 'testmember') + { + // Creation adherent + $adherent=new Adherent($db); + $adherent->initAsSpecimen(); + + // Test synchro + //$result1=$fuser->delete_ldap($user); + $result2=$adherent->update_ldap($user); + $result3=$adherent->delete_ldap($user); + + if ($result2 > 0) + { + print img_picto('','info').' '; + print ''.$langs->trans("LDAPSynchroOK").'
'; + } + else + { + print img_picto('','error').' '; + print ''.$langs->trans("LDAPSynchroKO"); + print ': '.$adherent->error; + print '
'; + } + + } + + if ($_GET["action"] == 'testtype') + { + // Creation type adherent + $typeadherent=new AdherentType($db); + $typeadherent->initAsSpecimen(); + + // Test synchro + //$result1=$fgroup->delete_ldap($user); + $result2=$typeadherent->update_ldap($user); + $result3=$typeadherent->delete_ldap($user); + + if ($result2 > 0) + { + print img_picto('','info').' '; + print ''.$langs->trans("LDAPSynchroOK").'
'; + } + else + { + print img_picto('','error').' '; + print ''.$langs->trans("LDAPSynchroKO"); + print ': '.$typeadherent->error; + print '
'; + } + + } +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); + +?> diff --git a/htdocs/admin/ldap_users.php b/htdocs/admin/ldap_users.php index c745c6ec56b..b83e3c98914 100644 --- a/htdocs/admin/ldap_users.php +++ b/htdocs/admin/ldap_users.php @@ -24,7 +24,7 @@ */ /** - \file htdocs/admin/ldap.php + \file htdocs/admin/ldap_users.php \ingroup ldap \brief Page d'administration/configuration du module Ldap \version $Revision$ @@ -144,23 +144,13 @@ print ''.$langs->trans("LDAPGroupDn").picto_required(). print ''; print ''.$langs->trans("LDAPGroupDnExample").''; -// Filtre de connexion +// Filtre +/* $var=!$var; print ''.$langs->trans("LDAPFilterConnection").picto_required().''; print ''; print ''.$langs->trans("LDAPFilterConnectionExample").''; - -// Login unix -$var=!$var; -print ''.$langs->trans("LDAPFieldLoginUnix").''; -print ''; -print ''.$langs->trans("LDAPFieldLoginExample").''; - -// Login samba -$var=!$var; -print ''.$langs->trans("LDAPFieldLoginSamba").''; -print ''; -print ''.$langs->trans("LDAPFieldLoginSambaExample").''; +*/ // Name $var=!$var; @@ -174,6 +164,18 @@ print ''.$langs->trans("LDAPFieldFirstName").''; print ''; print ''.$langs->trans("LDAPFieldFirstNameExample").''; +// Login unix +$var=!$var; +print ''.$langs->trans("LDAPFieldLoginUnix").''; +print ''; +print ''.$langs->trans("LDAPFieldLoginExample").''; + +// Login samba +$var=!$var; +print ''.$langs->trans("LDAPFieldLoginSamba").''; +print ''; +print ''.$langs->trans("LDAPFieldLoginSambaExample").''; + // Mail $var=!$var; print ''.$langs->trans("LDAPFieldMail").'';