]> BookStack Code Mirror - bookstack/blobdiff - app/Http/Controllers/Auth/Saml2Controller.php
Added tests and translations for dark-mode components
[bookstack] / app / Http / Controllers / Auth / Saml2Controller.php
index d54e925bbf40ff17145564e123d3f44eafd10fc2..7ffcc572bcd06dc43f003df6edb9f8c05d84720e 100644 (file)
@@ -4,7 +4,6 @@ namespace BookStack\Http\Controllers\Auth;
 
 use BookStack\Auth\Access\Saml2Service;
 use BookStack\Http\Controllers\Controller;
-use Illuminate\Http\Request;
 
 class Saml2Controller extends Controller
 {
@@ -18,6 +17,7 @@ class Saml2Controller extends Controller
     {
         parent::__construct();
         $this->samlService = $samlService;
+        $this->middleware('guard:saml2');
     }
 
     /**
@@ -31,6 +31,20 @@ class Saml2Controller extends Controller
         return redirect($loginDetails['url']);
     }
 
+    /**
+     * Start the logout flow via SAML2.
+     */
+    public function logout()
+    {
+        $logoutDetails = $this->samlService->logout();
+
+        if ($logoutDetails['id']) {
+            session()->flash('saml2_logout_request_id', $logoutDetails['id']);
+        }
+
+        return redirect($logoutDetails['url']);
+    }
+
     /*
      * Get the metadata for this SAML2 service provider.
      */
@@ -48,7 +62,9 @@ class Saml2Controller extends Controller
      */
     public function sls()
     {
-        // TODO
+        $requestId = session()->pull('saml2_logout_request_id', null);
+        $redirect = $this->samlService->processSlsResponse($requestId) ?? '/';
+        return redirect($redirect);
     }
 
     /**