';
+
print '';
print info_admin($langs->trans("LDAPDescValues"));
diff --git a/htdocs/langs/en_US/admin.lang b/htdocs/langs/en_US/admin.lang
index a8f7f9643ce..3eb9f24112d 100644
--- a/htdocs/langs/en_US/admin.lang
+++ b/htdocs/langs/en_US/admin.lang
@@ -1458,6 +1458,13 @@ LDAPFieldSidExample=Example: objectsid
LDAPFieldEndLastSubscription=Date of subscription end
LDAPFieldTitle=Job position
LDAPFieldTitleExample=Example: title
+LDAPFieldGroupid=Group id
+LDAPFieldGroupidExample=Exemple : gidnumber
+LDAPFieldUserid=User id
+LDAPFieldUseridExample=Exemple : uidnumber
+LDAPFieldHomedirectory=Home directory prefix
+LDAPFieldHomedirectoryExample=Exemple : homedirectory
+LDAPFieldHomedirectoryprefix=Home directory prefix
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.
LDAPDescContact=This page allows you to define LDAP attributes name in LDAP tree for each data found on Dolibarr contacts.
diff --git a/htdocs/langs/fr_FR/admin.lang b/htdocs/langs/fr_FR/admin.lang
index 20cdc9175d6..ff684f01cb9 100644
--- a/htdocs/langs/fr_FR/admin.lang
+++ b/htdocs/langs/fr_FR/admin.lang
@@ -1458,6 +1458,13 @@ LDAPFieldSidExample=Exemple : objectsid
LDAPFieldEndLastSubscription=Date de fin de validité adhésion
LDAPFieldTitle=Poste/fonction
LDAPFieldTitleExample=Exemple: title
+LDAPFieldGroupid=Groupe id
+LDAPFieldGroupidExample=Exemple : gidnumber
+LDAPFieldUserid=User id
+LDAPFieldUseridExample=Exemple : uidnumber
+LDAPFieldHomedirectory=Répertoire d'accueil
+LDAPFieldHomedirectoryExample=Exemple : homedirectory
+LDAPFieldHomedirectoryprefix=Préfixe du répertoire d'accueil
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.
LDAPDescContact=Cette page permet de définir le nom des attributs de l'arbre LDAP pour chaque information des contacts Dolibarr.
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index 4d78aa1b892..ae1d9afa062 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -13,6 +13,7 @@
* Copyright (C) 2018 charlene Benke
* Copyright (C) 2018 Nicolas ZABOURI
* Copyright (C) 2019 Frédéric France
+ * Copyright (C) 2019 Abbes Bahfir
*
* 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
@@ -35,6 +36,7 @@
*/
require_once DOL_DOCUMENT_ROOT .'/core/class/commonobject.class.php';
+require_once DOL_DOCUMENT_ROOT .'/user/class/usergroup.class.php';
/**
* Class to manage Dolibarr users
@@ -2655,8 +2657,22 @@ class User extends CommonObject
if ($this->phone_mobile) $info["phpgwCellTelephoneNumber"] = $this->phone_mobile;
}
- return $info;
- }
+ if (!empty($conf->global->LDAP_FIELD_USERID))$info[$conf->global->LDAP_FIELD_USERID] = $this->id;
+ if(!empty($info[$conf->global->LDAP_FIELD_GROUPID])){
+ $usergroup = new UserGroup($this->db);
+ $groupslist = $usergroup->listGroupsForUser($this->id);
+ $info[$conf->global->LDAP_FIELD_GROUPID] = '1';
+ if(!empty($groupslist)){
+ foreach ($groupslist as $groupforuser) {
+ $info[$conf->global->LDAP_FIELD_GROUPID] = $groupforuser->id;//Select first group in list
+ break;
+ }
+ }
+ }
+ if (!empty($this->firstname) && !empty($conf->global->LDAP_FIELD_HOMEDIRECTORY) && !empty($conf->global->LDAP_FIELD_HOMEDIRECTORYPREFIX)) $info[$conf->global->LDAP_FIELD_HOMEDIRECTORY]="{$conf->global->LDAP_FIELD_HOMEDIRECTORYPREFIX}/$this->firstname";
+
+ return $info;
+ }
/**
diff --git a/htdocs/user/class/usergroup.class.php b/htdocs/user/class/usergroup.class.php
index d51d82c8d13..a89126b122f 100644
--- a/htdocs/user/class/usergroup.class.php
+++ b/htdocs/user/class/usergroup.class.php
@@ -6,6 +6,7 @@
* Copyright (C) 2014 Juanjo Menent
* Copyright (C) 2014 Alexis Algoud
* Copyright (C) 2018 Nicolas ZABOURI
+ * Copyright (C) 2019 Abbes Bahfir
*
* 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
@@ -978,7 +979,10 @@ class UserGroup extends CommonObject
$valueofldapfield[] = $muser->_load_ldap_dn($info2);
}
$info[$conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS] = (!empty($valueofldapfield)?$valueofldapfield:'');
- }
+ }
+ if(!empty($info[$conf->global->LDAP_GROUP_FIELD_GROUPID])){
+ $info[$conf->global->LDAP_GROUP_FIELD_GROUPID]=$this->id;
+ }
return $info;
}