Skip to content
Snippets Groups Projects
Commit b2c09e9b authored by Maxime Kohlhaas's avatar Maxime Kohlhaas
Browse files

LDAP2Dolibarr sync script final. Now with scripts sync users and sync groups,...

LDAP2Dolibarr sync script final. Now with scripts sync users and sync groups, all groups and users from LDAP are synced in Dolibarr. To be tested and improved on another LDAP than Active Directory
parent de6d4023
Branches
No related tags found
No related merge requests found
...@@ -174,10 +174,11 @@ if ($result >= 0) ...@@ -174,10 +174,11 @@ if ($result >= 0)
$userList = array(); $userList = array();
$userIdList = array(); $userIdList = array();
foreach($ldapgroup[$conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS] as $key => $userdn) { foreach($ldapgroup[$conf->global->LDAP_GROUP_FIELD_GROUPMEMBERS] as $key => $userdn) {
if($key == 'count') continue; if($key === 'count') continue;
if(empty($userList[$userdn])) { // Récupération de l'utilisateur if(empty($userList[$userdn])) { // Récupération de l'utilisateur
$userFilter = explode(',', $userdn); $userFilter = explode(',', $userdn);
$userKey = $ldap->getAttributeValues('('.$userFilter[0].')', $conf->global->LDAP_KEY_USERS); $userKey = $ldap->getAttributeValues('('.$userFilter[0].')', $conf->global->LDAP_KEY_USERS);
if(!is_array($userKey)) continue;
$fuser = new User($db); $fuser = new User($db);
...@@ -187,7 +188,7 @@ if ($result >= 0) ...@@ -187,7 +188,7 @@ if ($result >= 0)
$fuser->fetch('',$userKey[0]); // Chargement du user concerné par le login $fuser->fetch('',$userKey[0]); // Chargement du user concerné par le login
} }
$userList[$userdn] = &$fuser; $userList[$userdn] = $fuser;
} else { } else {
$fuser = &$userList[$userdn]; $fuser = &$userList[$userdn];
} }
...@@ -195,12 +196,18 @@ if ($result >= 0) ...@@ -195,12 +196,18 @@ if ($result >= 0)
$userIdList[$userdn] = $fuser->id; $userIdList[$userdn] = $fuser->id;
// Ajout de l'utilisateur dans le groupe // Ajout de l'utilisateur dans le groupe
if(!in_array($fuser->id, array_keys($group->members))) $fuser->SetInGroup($group->id, $group->entity); if(!in_array($fuser->id, array_keys($group->members))) {
$fuser->SetInGroup($group->id, $group->entity);
echo $fuser->login.' added'."\n";
}
} }
// 2 - Suppression des utilisateurs du groupe Dolibarr qui ne sont plus dans le groupe LDAP // 2 - Suppression des utilisateurs du groupe Dolibarr qui ne sont plus dans le groupe LDAP
foreach ($group->members as $user_id => $infos) { foreach ($group->members as $guser) {
if(!in_array($user_id, $userIdList)) $fuser->RemoveFromGroup($group->id, $group->entity); if(!in_array($guser->id, $userIdList)) {
$guser->RemoveFromGroup($group->id, $group->entity);
echo $guser->login.' removed'."\n";
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment