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(); +});