diff --git a/htdocs/admin/ldap_groups.php b/htdocs/admin/ldap_groups.php new file mode 100644 index 00000000000..638669e9e5a --- /dev/null +++ b/htdocs/admin/ldap_groups.php @@ -0,0 +1,201 @@ + + * 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_groups.php + \ingroup ldap + \brief Page d'administration/configuration du module Ldap + \version $Revision$ +*/ + +require("./pre.inc.php"); +require_once(DOL_DOCUMENT_ROOT."/user.class.php"); +require_once(DOL_DOCUMENT_ROOT."/usergroup.class.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/authldap.lib.php"); +require_once(DOL_DOCUMENT_ROOT."/lib/ldap.lib.php"); + +$langs->load("admin"); + +if (!$user->admin) + accessforbidden(); + + +/* + * Actions + */ + +if ($_GET["action"] == 'setvalue' && $user->admin) +{ + $error=0; + if (! dolibarr_set_const($db, 'LDAP_KEY_GROUPS',$_POST["key"])) $error++; + + if (! dolibarr_set_const($db, 'LDAP_GROUP_DN',$_POST["group"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_FULLNAME',$_POST["fieldfullname"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_NAME',$_POST["fieldname"])) $error++; + if (! dolibarr_set_const($db, 'LDAP_FIELD_DESCRIPTION',$_POST["fielddescription"])) $error++; + + if ($error) + { + dolibarr_print_error($db->error()); + } +} + + + +/* + * Visu + */ + +llxHeader(); + +$head = ldap_prepare_head(); + +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 '
'; + + +dolibarr_fiche_head($head, 'groups', $langs->trans("LDAP")); + + +print $langs->trans("LDAPDescGroups").'
'; +print '
'; + + +print '
'; + +print ''; + +$var=true; +$html=new Form($db); + +print ''; +print ''; +print ''; +print "\n"; + +// DN pour les groupes +$var=!$var; +print ''; +print ''; +print ''; + +// Filtre +/* +$var=!$var; +print ''; +print ''; +*/ + +// Common name +$var=!$var; +print ''; +print '"; +print ''; + +// Name +$var=!$var; +print ''; +print '"; +print ''; + +// Description +$var=!$var; +print ''; +print '"; +print ''; + + +$var=!$var; +print ''; +print '
'.$langs->trans("LDAPSynchronizeUsers").''.$langs->trans("LDAPNamingAttribute").'
'.$langs->trans("LDAPGroupDn").picto_required().''; +print ''; +print ''.$langs->trans("LDAPGroupDnExample").' 
'.$langs->trans("LDAPFilterConnection").picto_required().''; +print ''; +print ''.$langs->trans("LDAPFilterConnectionExample").'
'.$langs->trans("LDAPFieldCommonName").''; +print ''; +print ''.$langs->trans("LDAPFieldCommonNameExample").'global->LDAP_KEY_GROUPS==$conf->global->LDAP_FIELD_FULLNAME?' checked="true"':'').">
'.$langs->trans("LDAPFieldName").''; +print ''; +print ''.$langs->trans("LDAPFieldNameExample").'global->LDAP_KEY_GROUPS==$conf->global->LDAP_FIELD_NAME?' checked="true"':'').">
'.$langs->trans("LDAPFieldDescription").''; +print ''; +print ''.$langs->trans("LDAPFieldDescriptionExample").'global->LDAP_KEY_GROUPS==$conf->global->LDAP_FIELD_DESCRIPTION?' checked="true"':'').">
'; + +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_SYNCHRO_ACTIVE == 'dolibarr2ldap') + { + print '
'; + print ''.$langs->trans("LDAPTestSynchroGroup").''; + print '

'; + } + + if ($_GET["action"] == 'testgroup') + { + // Creation contact + $fgroup=new UserGroup($db); + $fgroup->initAsSpecimen(); + + // Test synchro + //$result1=$fgroup->delete_ldap($user); + $result2=$fgroup->update_ldap($user); + $result3=$fgroup->delete_ldap($user); + + if ($result2 > 0) + { + print img_picto('','info').' '; + print ''.$langs->trans("LDAPSynchroOK").'
'; + } + else + { + print img_picto('','error').' '; + print ''.$langs->trans("LDAPSynchroKO"); + print ': '.$fgroup->error; + print '
'; + } + } +} + +$db->close(); + +llxFooter('$Date$ - $Revision$'); + +?> diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang index 6144a14e32a..ccb16863e37 100644 --- a/htdocs/langs/en_US/admin.lang +++ b/htdocs/langs/en_US/admin.lang @@ -562,6 +562,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory) LDAPFieldLoginSambaExample=Example : samaccountname LDAPFieldFullname=Firstname Name LDAPFieldFullnameExample=Example : cn +LDAPFieldCommonName=Common name +LDAPFieldCommonNameExample=Example : cn LDAPFieldName=Name LDAPFieldNameExample=Example : sn LDAPFieldFirstName=Firstname @@ -580,6 +582,8 @@ LDAPFieldZip=Zip LDAPFieldZipExample=Example : postalcode LDAPFieldTown=Town LDAPFieldTownExample=Example : l +LDAPFieldDescription=Description +LDAPFieldDescriptionExample=Example : description LDAPParametersAreStillHardCoded=LDAP parametres are still hardcoded (in contact class) LDAPSetupNotComplete=LDAP setup not complete (go on others tabs) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=No administrator or password provided. LDAP access will be anonymous and in read only mode. diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang index ceda5b1dd52..9591292dacd 100644 --- a/htdocs/langs/fr_FR/admin.lang +++ b/htdocs/langs/fr_FR/admin.lang @@ -562,6 +562,8 @@ LDAPFieldLoginSamba=Login (samba, activedirectory) LDAPFieldLoginSambaExample=Exemple : samaccountname LDAPFieldFullname=Prénom Nom LDAPFieldFullnameExample=Exemple : cn +LDAPFieldCommonName=Nom commun +LDAPFieldCommonNameExample=Exemple : cn LDAPFieldName=Nom LDAPFieldNameExample=Exemple : sn LDAPFieldFirstName=Prénom @@ -580,6 +582,8 @@ LDAPFieldZip=Code postal LDAPFieldZipExample=Exemple : postalcode LDAPFieldTown=Ville LDAPFieldTownExample=Exemple : l +LDAPFieldDescription=Description +LDAPFieldDescriptionExample=Exemple : description LDAPParametersAreStillHardCoded=Les parametres LDAP sont codés en dur (dans classe contact) LDAPSetupNotComplete=Configuration LDAP incomplète (à compléter sur les autres onglets) LDAPNoUserOrPasswordProvidedAccessIsReadOnly=Administrateur ou mot de passe non renseigné. Les accès LDAP seront donc anonymes et en lecture seule. diff --git a/htdocs/user/group/fiche.php b/htdocs/user/group/fiche.php index 172dfffa473..0680762be8a 100644 --- a/htdocs/user/group/fiche.php +++ b/htdocs/user/group/fiche.php @@ -375,7 +375,7 @@ else print ''.$langs->trans("Note").''; print ''; print "\n"; - print ''; + print ''; print "\n"; print "
\n"; print ''; diff --git a/htdocs/usergroup.class.php b/htdocs/usergroup.class.php index 71179b8392e..5c5fa25533d 100644 --- a/htdocs/usergroup.class.php +++ b/htdocs/usergroup.class.php @@ -634,7 +634,8 @@ class UserGroup // Champs if ($this->nom && $conf->global->LDAP_FIELD_FULLNAME) $info[$conf->global->LDAP_FIELD_FULLNAME] = $this->nom; - if ($this->note) $info["description"] = $this->note; + if ($this->nom && $conf->global->LDAP_FIELD_NAME) $info[$conf->global->LDAP_FIELD_NAME] = $this->nom; + if ($this->note && $conf->global->LDAP_FIELD_DESCRIPTION) $info[$conf->global->LDAP_FIELD_DESCRIPTION] = $this->note; return $info; }