= d7c2491fed Refactor: consolidate and replace permission enums for streamlined access management
- Replaced `AccessManager`, `Apps`, and `Settings` enums with modular enums like `RoleAndAppsPermissionEnum`, `AppPermissionEnum`, etc.
- Updated route, view, Livewire components, and tests to use new modular enums.
- Enhanced `DefaultRoleWithPermissionSeeder` and `PermissionSeeder` with updated enums.
- Added README in the Enums/Permissions directory to explain usage and naming conventions.
- Refactored dashboard sidebar and route definitions for better enum-based permission handling.
- Improved test coverage to validate new permission enums functionality.
2026-05-25 06:18:09 +00:00

44 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
use App\Enums\Permissions\{ProfilePermissionEnum, SecurityPermissionEnum};
use App\Livewire\Settings\{Appearance, Profile, Security};
use Illuminate\Support\Facades\Route;
use Laravel\Fortify\Features;
use Spatie\Permission\Middleware\PermissionMiddleware;
// Grouping by the "Settings" sidebar category
Route::middleware(['auth'])->prefix('settings')->group(function (): void {
// Base settings redirect
Route::redirect('/', '/settings/profile')->name('settings');
// Profile Settings
Route::livewire('profile', Profile::class)
->middleware(PermissionMiddleware::using(ProfilePermissionEnum::Access))
->name('profile.edit');
// Settings that require email verification
Route::middleware(['verified'])->group(function (): void {
// Appearance Settings
Route::livewire('appearance', Appearance::class)->name('appearance.edit');
// Security Settings
Route::livewire('security', Security::class)
->middleware(
array_merge(
[PermissionMiddleware::using(SecurityPermissionEnum::Access)],
when(
Features::canManageTwoFactorAuthentication()
&& Features::optionEnabled(Features::twoFactorAuthentication(), 'confirmPassword'),
['password.confirm'],
[],
),
)
)
->name('security.edit');
});
});