= f02caef80c Feat: add role seeding, dashboard routing
- Added `DefaultUserRole` and permissions enums (`AccessManager`, `Apps`, `Settings`) for centralizing role and permission constants.
- Implemented `DashboardRoute` helper to resolve routes dynamically based on user roles.
- Introduced seeders for default roles (`DefaultRoleWithPermissionSeeder`, `PermissionSeeder`, `ExampleUserWithRoleSeeder`) with role-permission assignments.
- Created `EnumExtractor` utility for parsing enums and generating permissions.
- Customized dashboard routes with role-based redirection logic.
- Updated sidebar navigation to display role-based menu items with permission checks.
2026-05-21 10:24:57 +00:00

42 lines
1.9 KiB
PHP

<?php
declare(strict_types=1);
use App\Http\Controllers\ResolveDashboardRouteController;
use Illuminate\Support\Facades\Route;
Route::view('/', 'welcome')->name('home');
Route::group(['middleware' => ['auth', 'verified']], function (): void {
Route::get('dashboard', ResolveDashboardRouteController::class)->name('dashboard');
Route::prefix('dashboard')->name('dashboard.')->group(function (): void {
Route::livewire('/user', 'pages::dashboards.user')->name('user');
Route::livewire('admin', 'pages::dashboards.admin')->name('admin');
});
Route::prefix('access-manager')->name('access-manager.')->group(function (): void {
Route::prefix('roles-and-apps')->name('roles-and-apps.')->group(function (): void {
Route::livewire('roles-and-apps', 'pages::access-manager.roles-and-apps.index')->name('index');
Route::livewire('roles-and-apps/{id}', 'pages::access-manager.roles-and-apps.show')->name('show');
});
Route::prefix('users')->name('users.')->group(function (): void {
Route::livewire('users', 'pages::access-manager.users.index')->name('index');
});
});
Route::prefix('apps')->name('apps.')->group(function (): void {
Route::livewire('create', 'pages::connected-apps.create')->name('create');
Route::livewire('{id}/edit', 'pages::connected-apps.edit')->name('edit');
Route::livewire('/', 'pages::connected-apps.index')->name('index');
Route::prefix('connection-providers')->name('connectionProviders.')->group(function (): void {
Route::livewire('create', 'pages::connecton-providers.create')->name('create');
Route::livewire('{slug}/edit', 'pages::connecton-providers.edit')->name('edit');
Route::livewire('index', 'pages::connecton-providers.index')->name('index');
});
});
});
require __DIR__.'/settings.php';