diff --git a/app/Http/Middleware/EnsureLodgeAdmin.php b/app/Http/Middleware/EnsureLodgeAdmin.php new file mode 100644 index 0000000..5321bac --- /dev/null +++ b/app/Http/Middleware/EnsureLodgeAdmin.php @@ -0,0 +1,20 @@ +user()?->email); + + abort_unless($admin !== '' && $email !== '' && strcasecmp($admin, $email) === 0, 403); + + return $next($request); + } +} diff --git a/resources/themes/backend/views/components/desktop-user-menu.blade.php b/resources/themes/backend/views/components/desktop-user-menu.blade.php index 7fb3706..2261022 100644 --- a/resources/themes/backend/views/components/desktop-user-menu.blade.php +++ b/resources/themes/backend/views/components/desktop-user-menu.blade.php @@ -2,7 +2,7 @@ diff --git a/resources/themes/backend/views/layouts/app.blade.php b/resources/themes/backend/views/layouts/app.blade.php index 037dd1b..a78e98e 100644 --- a/resources/themes/backend/views/layouts/app.blade.php +++ b/resources/themes/backend/views/layouts/app.blade.php @@ -1,5 +1,2 @@ - - - {{ $slot }} - - +{{-- Use the same Cresta 31 shell for Livewire settings and admin pages. --}} +@include('lodge.admin-layout', ['slot' => $slot, 'title' => $title ?? 'Account settings']) diff --git a/resources/themes/backend/views/layouts/app/header.blade.php b/resources/themes/backend/views/layouts/app/header.blade.php index 989b8e4..61135d9 100644 --- a/resources/themes/backend/views/layouts/app/header.blade.php +++ b/resources/themes/backend/views/layouts/app/header.blade.php @@ -24,7 +24,7 @@ - + {{ __('Repository') }} - + {{ __('Documentation') }} diff --git a/resources/themes/backend/views/layouts/app/sidebar.blade.php b/resources/themes/backend/views/layouts/app/sidebar.blade.php index 6db2170..b0178a2 100644 --- a/resources/themes/backend/views/layouts/app/sidebar.blade.php +++ b/resources/themes/backend/views/layouts/app/sidebar.blade.php @@ -10,24 +10,56 @@ + @php + $adminEmail = trim((string) config('lodge.admin_email', '')); + $isLodgeAdmin = auth()->check() + && $adminEmail !== '' + && strcasecmp(trim((string) auth()->user()->email), $adminEmail) === 0; + @endphp + - - - {{ __('Dashboard') }} - + @if ($isLodgeAdmin) + + @if (Route::has('admin.dashboard')) + Dashboard + @endif + + + + @if (Route::has('lodge.admin')) + Bookings + @endif + @if (Route::has('lodge.availability')) + Availability + @endif + + + + @if (Route::has('admin.photos')) + Photo Gallery + @endif + + + + @if (Route::has('admin.modules.index')) + Modules + @elseif (Route::has('modules.index')) + Modules + @endif + + @endif + + + @if (Route::has('profile.edit')) + Profile Settings + @endif - - {{ __('Repository') }} - - - - {{ __('Documentation') }} - + View Website diff --git a/resources/themes/frontend/views/lodge/layout.blade.php b/resources/themes/frontend/views/lodge/layout.blade.php index 50fe95b..cf8bad9 100644 --- a/resources/themes/frontend/views/lodge/layout.blade.php +++ b/resources/themes/frontend/views/lodge/layout.blade.php @@ -1,3 +1,7 @@ @yield('title','Cresta 31 | Lodge escapes')Cresta 31.The lodgeGalleryCheck availability@auth @if(filled(config('lodge.admin_email')) && strcasecmp(trim(auth()->user()->email),trim(config('lodge.admin_email')))===0)Admin dashboard →@endif @endauth@yield('content') \ No newline at end of file +Cresta 31.The lodgeGalleryCheck availability@auth +@if(filled(config('lodge.admin_email')) && strcasecmp(trim((string) auth()->user()->email), trim((string) config('lodge.admin_email'))) === 0) +Administration +@endif +@endauth@yield('content')