From dc2991666af48feaf838cb21b69f364d1bc1e48a Mon Sep 17 00:00:00 2001 From: Andrew Ruthven Date: Sat, 3 Feb 2024 16:39:23 +1300 Subject: [PATCH] Allow the LDAP group to have no members --- inc/drivers_ldap.php | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/inc/drivers_ldap.php b/inc/drivers_ldap.php index 6ebbb0f6..8c7ea621 100644 --- a/inc/drivers_ldap.php +++ b/inc/drivers_ldap.php @@ -504,17 +504,21 @@ function sync_LDAP_groups(){ if ( sizeof($ldap_groups_tmp) == 0 ) return; - $member_field = $mapping['members']; + $member_field = isset($mapping['members']) + ? $mapping['members'] + : 'memberUid'; $dnfix = isset($c->authenticate_hook['config']['group_member_dnfix']) && $c->authenticate_hook['config']['group_member_dnfix']; foreach($ldap_groups_tmp as $key => $ldap_group){ $group_mapping = $ldap_group[$mapping['username']]; $ldap_groups_info[$group_mapping] = $ldap_group; - if ( is_array($ldap_groups_info[$group_mapping][$member_field]) ) { - unset( $ldap_groups_info[$group_mapping][$member_field]['count'] ); - } - else { - $ldap_groups_info[$group_mapping][$member_field] = array($ldap_groups_info[$group_mapping][$member_field]); + if ( isset($ldap_groups_info[$group_mapping][$member_field]) ) { + if ( is_array($ldap_groups_info[$group_mapping][$member_field]) ) { + unset( $ldap_groups_info[$group_mapping][$member_field]['count'] ); + } + else { + $ldap_groups_info[$group_mapping][$member_field] = array($ldap_groups_info[$group_mapping][$member_field]); + } } unset($ldap_groups_tmp[$key]); } @@ -601,7 +605,9 @@ function sync_LDAP_groups(){ $db_members = is_array( $db_group_members[$group] ) ? array_values( $db_group_members[$group] ) : array(); - $ldap_members = array_values ( $ldap_groups_info[$group][$member_field] ); + $ldap_members = isset ( $ldap_groups_info[$group][$member_field] ) + ? array_values ( $ldap_groups_info[$group][$member_field] ) + : array(); $mapping_field = $c->authenticate_hook['config']['mapping_field']; if (isset($c->authenticate_hook['config']['group_match_username_attr']) && isset($mapping_field['username'])) {