]> BookStack Code Mirror - bookstack/blobdiff - app/Providers/AuthServiceProvider.php
Fixes for CodeStyle vol.2
[bookstack] / app / Providers / AuthServiceProvider.php
index d1fac56e677ff968896b6ce60df441da91b13c91..71b7ab016200bb085c5383584463313c673c1eb6 100644 (file)
@@ -3,7 +3,13 @@
 namespace BookStack\Providers;
 
 use Auth;
-use BookStack\Services\LdapService;
+use BookStack\Api\ApiTokenGuard;
+use BookStack\Auth\Access\ExternalBaseUserProvider;
+use BookStack\Auth\Access\Guards\LdapSessionGuard;
+use BookStack\Auth\Access\Guards\Saml2SessionGuard;
+use BookStack\Auth\Access\LdapService;
+use BookStack\Auth\Access\LoginService;
+use BookStack\Auth\Access\RegistrationService;
 use Illuminate\Support\ServiceProvider;
 
 class AuthServiceProvider extends ServiceProvider
@@ -15,7 +21,32 @@ class AuthServiceProvider extends ServiceProvider
      */
     public function boot()
     {
-        //
+        Auth::extend('api-token', function ($app, $name, array $config) {
+            return new ApiTokenGuard($app['request'], $app->make(LoginService::class));
+        });
+
+        Auth::extend('ldap-session', function ($app, $name, array $config) {
+            $provider = Auth::createUserProvider($config['provider']);
+
+            return new LdapSessionGuard(
+                $name,
+                $provider,
+                $app['session.store'],
+                $app[LdapService::class],
+                $app[RegistrationService::class]
+            );
+        });
+
+        Auth::extend('saml2-session', function ($app, $name, array $config) {
+            $provider = Auth::createUserProvider($config['provider']);
+
+            return new Saml2SessionGuard(
+                $name,
+                $provider,
+                $app['session.store'],
+                $app[RegistrationService::class]
+            );
+        });
     }
 
     /**
@@ -25,8 +56,8 @@ class AuthServiceProvider extends ServiceProvider
      */
     public function register()
     {
-        Auth::provider('ldap', function ($app, array $config) {
-            return new LdapUserProvider($config['model'], $app[LdapService::class]);
+        Auth::provider('external-users', function ($app, array $config) {
+            return new ExternalBaseUserProvider($config['model']);
         });
     }
 }