From 6ea60fcbb56b1fe0354f3f9a6b59fc81ccdfa26a Mon Sep 17 00:00:00 2001 From: Alexander Gabriel Date: Sat, 30 May 2026 14:54:50 +0200 Subject: [PATCH] move settings to new page --- .env.example | 2 + app/Http/Controllers/SettingsController.php | 38 +++++++++++++++++ app/Http/Middleware/SettingsPassword.php | 19 +++++++++ resources/views/camera.blade.php | 2 - resources/views/settings-login.blade.php | 46 +++++++++++++++++++++ resources/views/settings.blade.php | 35 ++++++++++++++++ routes/web.php | 10 +++++ 7 files changed, 150 insertions(+), 2 deletions(-) create mode 100644 app/Http/Controllers/SettingsController.php create mode 100644 app/Http/Middleware/SettingsPassword.php create mode 100644 resources/views/settings-login.blade.php create mode 100644 resources/views/settings.blade.php diff --git a/.env.example b/.env.example index c0660ea..604de52 100644 --- a/.env.example +++ b/.env.example @@ -63,3 +63,5 @@ AWS_BUCKET= AWS_USE_PATH_STYLE_ENDPOINT=false VITE_APP_NAME="${APP_NAME}" + +SETTINGS_PASSWORD=admin diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php new file mode 100644 index 0000000..0adbee7 --- /dev/null +++ b/app/Http/Controllers/SettingsController.php @@ -0,0 +1,38 @@ +input('password') === $password) { + session(['settings_authenticated' => true]); + return redirect()->route('settings'); + } + + return back()->withErrors(['password' => 'Falsches Passwort.']); + } + + public function index(): View + { + return view('settings'); + } + + public function logout(): RedirectResponse + { + session()->forget('settings_authenticated'); + return redirect()->route('settings.login'); + } +} diff --git a/app/Http/Middleware/SettingsPassword.php b/app/Http/Middleware/SettingsPassword.php new file mode 100644 index 0000000..695660a --- /dev/null +++ b/app/Http/Middleware/SettingsPassword.php @@ -0,0 +1,19 @@ +route('settings.login'); + } + + return $next($request); + } +} diff --git a/resources/views/camera.blade.php b/resources/views/camera.blade.php index dcfe7ea..bf05846 100644 --- a/resources/views/camera.blade.php +++ b/resources/views/camera.blade.php @@ -15,8 +15,6 @@ @livewire('camera-capture') - @livewire('photo-settings') - @livewireScripts diff --git a/resources/views/settings-login.blade.php b/resources/views/settings-login.blade.php new file mode 100644 index 0000000..8db4b5f --- /dev/null +++ b/resources/views/settings-login.blade.php @@ -0,0 +1,46 @@ + + + + + + Einstellungen – Fotobox + @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot'))) + @vite(['resources/css/app.css', 'resources/js/app.js']) + @endif + + + +
+

Einstellungen

+ +
+ @csrf + +
+ + + @error('password') +

{{ $message }}

+ @enderror +
+ + +
+ + +
+ + + diff --git a/resources/views/settings.blade.php b/resources/views/settings.blade.php new file mode 100644 index 0000000..1f7f4c5 --- /dev/null +++ b/resources/views/settings.blade.php @@ -0,0 +1,35 @@ + + + + + + Einstellungen – Fotobox + @if (file_exists(public_path('build/manifest.json')) || file_exists(public_path('hot'))) + @vite(['resources/css/app.css', 'resources/js/app.js']) + @endif + @livewireStyles + + + +
+
+

Einstellungen

+
+ + ← Fotobox + +
+ @csrf + +
+
+
+ + @livewire('photo-settings') +
+ + @livewireScripts + + diff --git a/routes/web.php b/routes/web.php index 6951d20..da99cf9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,8 +1,18 @@ middleware(\App\Http\Middleware\RestrictToSubnet::class) ->name('camera'); + +Route::get('/settings/login', [SettingsController::class, 'login'])->name('settings.login'); +Route::post('/settings/login', [SettingsController::class, 'authenticate'])->name('settings.authenticate'); +Route::post('/settings/logout', [SettingsController::class, 'logout'])->name('settings.logout'); + +Route::get('/settings', [SettingsController::class, 'index']) + ->middleware(SettingsPassword::class) + ->name('settings');