From 4b9a91f55b5108ad3d4a09017604ce7cbceb6867 Mon Sep 17 00:00:00 2001 From: Warren White Date: Fri, 19 Aug 2022 09:09:03 -0700 Subject: [PATCH 1/2] Fixed #10565, #11086: correctly looks up Manager DN from AD Manager attribute and sets manager id --- app/Console/Commands/LdapSync.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/Console/Commands/LdapSync.php b/app/Console/Commands/LdapSync.php index f3c0a79e6..36505eba1 100755 --- a/app/Console/Commands/LdapSync.php +++ b/app/Console/Commands/LdapSync.php @@ -217,16 +217,23 @@ class LdapSync extends Command $user->department_id = $department->id; if($item['manager'] != null) { - //Captures only the Canonical Name - $item['manager'] = ltrim($item['manager'], "CN="); - $item['manager'] = substr($item['manager'],0, strpos($item['manager'], ',')); - $ldap_manager = User::where('username', $item['manager'])->first(); - if ( $ldap_manager && isset($ldap_manager->id) ) { - $user->manager_id = $ldap_manager->id; + // Get the LDAP Manager + $ldap_manager = Ldap::findLdapUsers($item['manager'], -1, $this->option('filter')); + + if($ldap_manager["count"] > 0) { + // Get the Managers username + $ldapManagerUsername = $ldap_manager[0][$ldap_result_username][0]; + + // Get User from Manager username. + $ldap_manager = User::where('username', $ldapManagerUsername)->first(); + + if ( $ldap_manager && isset($ldap_manager->id) ) { + // Link user to manager id. + $user->manager_id = $ldap_manager->id; + } } } - // Sync activated state for Active Directory. if ( !empty($ldap_result_active_flag)) { // IF we have an 'active' flag set.... // ....then *most* things that are truthy will activate the user. Anything falsey will deactivate them. From ba7d6dde3ff9692840d66932df8adf7cb03ad4eb Mon Sep 17 00:00:00 2001 From: Warren White Date: Fri, 19 Aug 2022 10:17:25 -0700 Subject: [PATCH 2/2] Fixed #11706: changes the display of managers username to First Last name --- app/Http/Transformers/UsersTransformer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Transformers/UsersTransformer.php b/app/Http/Transformers/UsersTransformer.php index 9a498a325..3a70487e1 100644 --- a/app/Http/Transformers/UsersTransformer.php +++ b/app/Http/Transformers/UsersTransformer.php @@ -33,7 +33,7 @@ class UsersTransformer 'employee_num' => e($user->employee_num), 'manager' => ($user->manager) ? [ 'id' => (int) $user->manager->id, - 'name'=> e($user->manager->username), + 'name'=> e($user->manager->first_name).' '.e($user->manager->last_name), ] : null, 'jobtitle' => ($user->jobtitle) ? e($user->jobtitle) : null, 'phone' => ($user->phone) ? e($user->phone) : null,