mirror of
https://gitlab.com/davical-project/davical.git
synced 2026-08-22 17:16:06 +00:00
use username attr for matching group members
This commit is contained in:
parent
c75e7aee29
commit
016e51b4ac
@ -557,9 +557,28 @@ function sync_LDAP_groups(){
|
||||
foreach ( $groups_to_update as $group ){
|
||||
$db_members = array_values ( $db_group_members[$group] );
|
||||
$ldap_members = array_values ( $ldap_groups_info[$group][$member_field] );
|
||||
if ( $member_field == 'uniqueMember' || $dnfix ) {
|
||||
|
||||
$mapping_field = $c->authenticate_hook['config']['mapping_field'];
|
||||
if (isset($c->authenticate_hook['config']['group_match_username_attr']) && isset($mapping_field['username'])) {
|
||||
$query = $ldapDriver->ldap_query_one;
|
||||
$username_ldap_attribute = $mapping_field['username'];
|
||||
$filter="(objectCategory=person)";
|
||||
|
||||
$ldap_members_tmp = array();
|
||||
|
||||
foreach ( $ldap_members as $member ){
|
||||
$entry = ldap_read($ldapDriver->connect, $member, $filter, array($username_ldap_attribute));
|
||||
$ldap_user_entry = ldap_first_entry($ldapDriver->connect,$entry);
|
||||
$ldap_user_attributes = ldap_get_attributes($ldapDriver->connect, $ldap_user_entry);
|
||||
|
||||
array_push($ldap_members_tmp, $ldap_user_attributes[$username_ldap_attribute][0]);
|
||||
}
|
||||
$ldap_members = $ldap_members_tmp;
|
||||
}
|
||||
else if ( $member_field == 'uniqueMember' || $dnfix ) {
|
||||
$ldap_members = fix_unique_member( $ldap_members );
|
||||
}
|
||||
|
||||
$add_users = array_diff ( $ldap_members, $db_members );
|
||||
if ( sizeof ( $add_users ) ){
|
||||
$c->messages[] = sprintf(i18n('- adding %s to group : %s'),join(', ', $add_users ), $group);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user