]> BookStack Code Mirror - bookstack/commitdiff
Issue #1306 - Specify display name attribute from LDAP
authorDaniel Fanara <redacted>
Sat, 9 Mar 2019 04:55:11 +0000 (23:55 -0500)
committerDaniel Fanara <redacted>
Sat, 9 Mar 2019 04:55:11 +0000 (23:55 -0500)
app/Auth/Access/LdapService.php
config/services.php

index 654ea2f995c34494f86e54ebc28420464f58b4ca..c8548b98ac83f174a2c23a0281953ab30cb007fe 100644 (file)
@@ -80,7 +80,9 @@ class LdapService
     public function getUserDetails($userName)
     {
         $emailAttr = $this->config['email_attribute'];
-        $user = $this->getUserWithAttributes($userName, ['cn', 'uid', 'dn', $emailAttr]);
+        $displayNameAttr = $this->config['display_name_attribute'];
+
+        $user = $this->getUserWithAttributes($userName, ['cn', 'uid', 'dn', $emailAttr, $displayNameAttr]);
 
         if ($user === null) {
             return null;
@@ -88,7 +90,7 @@ class LdapService
 
         return [
             'uid'   => (isset($user['uid'])) ? $user['uid'][0] : $user['dn'],
-            'name'  => $user['cn'][0],
+            'name'  => (isset($uset[$displayNameAttr])) ? (is_array($user[$displayNameAttr]) ? $user[$displayNameAttr][0] : $user[$displayNameAttr]) : $user['cn'][0],
             'dn'    => $user['dn'],
             'email' => (isset($user[$emailAttr])) ? (is_array($user[$emailAttr]) ? $user[$emailAttr][0] : $user[$emailAttr]) : null
         ];
index f713f9d3897df3caf051805bdb64bd0f25ae9a4a..97cb71ddc73f0cf623907936fe43b02356496269 100644 (file)
@@ -141,6 +141,7 @@ return [
         'user_filter' => env('LDAP_USER_FILTER', '(&(uid=${user}))'),
         'version' => env('LDAP_VERSION', false),
         'email_attribute' => env('LDAP_EMAIL_ATTRIBUTE', 'mail'),
+        'display_name_attribute' => env('LDAP_DISPLAY_NAME_ATTRIBUTE', 'cn'),
         'follow_referrals' => env('LDAP_FOLLOW_REFERRALS', false),
                'user_to_groups' => env('LDAP_USER_TO_GROUPS',false),
                'group_attribute' => env('LDAP_GROUP_ATTRIBUTE', 'memberOf'),