From 7510946f38c1578764c00864a63c7044f2cfbf13 Mon Sep 17 00:00:00 2001
From: HolgerHatGarKeineNode
<123783602+HolgerHatGarKeineNode@users.noreply.github.com>
Date: Mon, 8 Jun 2026 01:34:00 +0200
Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20**Add=20public=20API=20documentatio?=
=?UTF-8?q?n=20access=20and=20navigation=20links**?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 📚 Added "API Dokumentation" link to the sidebar and header navigation.
- 🔓 Defined `viewApiDocs` gate for public access to API documentation.
- ✅ Added feature tests for API documentation route accessibility and OpenAPI document serving.
---
app/Providers/AppServiceProvider.php | 3 +++
.../views/components/layouts/app/header.blade.php | 8 ++++----
.../components/layouts/app/sidebar.blade.php | 5 +++++
tests/Feature/Api/ApiDocsAccessTest.php | 15 +++++++++++++++
4 files changed, 27 insertions(+), 4 deletions(-)
create mode 100644 tests/Feature/Api/ApiDocsAccessTest.php
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 1b1a7f4..3d76dd5 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -10,6 +10,7 @@ use Illuminate\Foundation\Events\DiagnosingHealth;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Date;
use Illuminate\Support\Facades\Event;
+use Illuminate\Support\Facades\Gate;
use Illuminate\Support\Facades\RateLimiter;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\URL;
@@ -37,6 +38,8 @@ class AppServiceProvider extends ServiceProvider
{
$this->configureRateLimiting();
+ Gate::define('viewApiDocs', fn (?Authenticatable $user = null): bool => true);
+
if ($this->app->environment('production')) {
URL::forceScheme('https');
}
diff --git a/resources/views/components/layouts/app/header.blade.php b/resources/views/components/layouts/app/header.blade.php
index d13aa35..521ae0a 100644
--- a/resources/views/components/layouts/app/header.blade.php
+++ b/resources/views/components/layouts/app/header.blade.php
@@ -116,15 +116,15 @@
+
+ {{ __('API Dokumentation') }}
+
+
{{ __('Repository') }}
-
-
- {{ __('Documentation') }}
-
diff --git a/resources/views/components/layouts/app/sidebar.blade.php b/resources/views/components/layouts/app/sidebar.blade.php
index 83a32fe..624d571 100644
--- a/resources/views/components/layouts/app/sidebar.blade.php
+++ b/resources/views/components/layouts/app/sidebar.blade.php
@@ -127,6 +127,11 @@
+
+ {{ __('API Dokumentation') }}
+
diff --git a/tests/Feature/Api/ApiDocsAccessTest.php b/tests/Feature/Api/ApiDocsAccessTest.php
new file mode 100644
index 0000000..c47692e
--- /dev/null
+++ b/tests/Feature/Api/ApiDocsAccessTest.php
@@ -0,0 +1,15 @@
+allows('viewApiDocs'))->toBeTrue();
+});
+
+it('allows guests to open the api documentation', function () {
+ $this->get(route('scramble.docs.ui'))->assertSuccessful();
+});
+
+it('serves the openapi document to guests', function () {
+ $this->get(route('scramble.docs.document'))->assertSuccessful();
+});