]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'master' of https://github.com/jasonhoule/BookStack into jasonhoule...
authorDan Brown <redacted>
Mon, 24 May 2021 16:06:50 +0000 (17:06 +0100)
committerDan Brown <redacted>
Mon, 24 May 2021 16:06:50 +0000 (17:06 +0100)
app/Auth/Access/Guards/LdapSessionGuard.php
app/Auth/Access/LdapService.php
app/Config/services.php

index cabbfbbcbb7ac17065f0446fec76af95d9a362a0..a9802054a5889c4e28f6905b469eef5f4b2b168c 100644 (file)
@@ -115,6 +115,16 @@ class LdapSessionGuard extends ExternalBaseSessionGuard
             'password' => Str::random(32),
         ];
 
-        return $this->registrationService->registerUser($details, null, false);
+        $user = $this->registrationService->registerUser($details, null, false);
+
+        if (config('services.ldap.import_thumbnail_photos')) {
+            $imageService = app()->make(ImageService::class);
+            $image = $imageService->saveNewFromBase64Uri('data:image/jpg;base64,'.base64_encode($ldapUserDetails['avatar']), $ldapUserDetails['uid'].'.jpg', 'user');
+
+            $user['image_id'] = $image->id;
+            $user->save();
+        }
+
+        return $user;
     }
 }
index a438c098490586f44f06b607ff15892e726b60d9..c5b586b4dcb8c36c6dbb7d41124f9718e47b9c70 100644 (file)
@@ -76,6 +76,7 @@ class LdapService extends ExternalAuthService
         $idAttr = $this->config['id_attribute'];
         $emailAttr = $this->config['email_attribute'];
         $displayNameAttr = $this->config['display_name_attribute'];
+        $thumbnailAttr = $this->config['thumbnail_attribute'];
 
         $user = $this->getUserWithAttributes($userName, ['cn', 'dn', $idAttr, $emailAttr, $displayNameAttr]);
 
@@ -89,6 +90,7 @@ class LdapService extends ExternalAuthService
             'name' => $this->getUserResponseProperty($user, $displayNameAttr, $userCn),
             'dn' => $user['dn'],
             'email' => $this->getUserResponseProperty($user, $emailAttr, null),
+            'avatar'=> $this->getUserResponseProperty($user, $thumbnailAttr, null),
         ];
 
         if ($this->config['dump_user_details']) {
index 6993396147af9b02eec0a778c81b7bb83a6764c3..7fac1f51cfa4ee0b9d3743c733e64b776c6c377d 100644 (file)
@@ -133,6 +133,8 @@ return [
         'remove_from_groups' => env('LDAP_REMOVE_FROM_GROUPS', false),
         'tls_insecure' => env('LDAP_TLS_INSECURE', false),
         'start_tls' => env('LDAP_START_TLS', false),
+        'import_thumbnail_photos' => env('LDAP_IMPORT_THUMBNAIL_PHOTOS', false),
+        'thumbnail_attribute' => env('LDAP_THUMBNAIL_ATTRIBUTE', 'thumbnailPhoto'),
     ],
 
 ];