check()) { return redirect()->route('login'); } return redirect()->route(RoleRedirect::routeFor(auth()->user())); }); Route::middleware('guest')->group(function () { Route::get('/login', LoginPage::class)->name('login'); Route::get('/forgot-password', [ForgotPasswordController::class, 'create'])->name('password.request'); Route::post('/forgot-password', [ForgotPasswordController::class, 'store'])->name('password.email'); Route::get('/reset-password/{token}', [ResetPasswordController::class, 'create'])->name('password.reset'); Route::post('/reset-password', [ResetPasswordController::class, 'store'])->name('password.store'); }); Route::post('/logout', function (Request $request, ActivityLogService $activityLogService) { if (auth()->check()) { $activityLogService->log(auth()->user(), auth()->user(), auth()->id(), 'logout', 'Выход из системы', $request->ip()); } Auth::logout(); $request->session()->invalidate(); $request->session()->regenerateToken(); return redirect()->route('login')->with('success', 'Вы вышли из системы.'); })->middleware('auth')->name('logout'); Route::middleware(['auth', 'active_user'])->group(function () { Route::get('/profile', ProfilePage::class)->name('profile'); Route::get('/notifications', NotificationsPage::class)->name('notifications.index'); Route::get('/requests/{request}', RequestShowPage::class) ->whereNumber('request') ->name('requests.show'); Route::get('/my-requests/{request}', RequestShowPage::class) ->whereNumber('request') ->name('my-requests.show'); Route::get('/requests/{request}/attachments/{attachment}', [AttachmentController::class, 'download']) ->whereNumber('request') ->whereNumber('attachment') ->name('attachments.download'); Route::middleware('role:admin,manager')->group(function () { Route::get('/dashboard', DashboardPage::class)->name('dashboard'); Route::get('/requests', RequestIndexPage::class)->name('requests.index'); Route::get('/requests/create', RequestFormPage::class)->name('requests.create'); Route::get('/requests/{request}/edit', RequestFormPage::class) ->whereNumber('request') ->name('requests.edit'); Route::get('/users', UsersIndexPage::class)->name('users.index'); Route::get('/users/{user}', UserShowPage::class) ->whereNumber('user') ->name('users.show'); Route::get('/reports', fn () => redirect()->route('reports.general'))->name('reports'); Route::get('/reports/general', GeneralReportPage::class)->name('reports.general'); Route::get('/reports/technicians', TechniciansReportPage::class)->name('reports.technicians'); Route::get('/reports/sla', SlaReportPage::class)->name('reports.sla'); Route::get('/reports/equipment', EquipmentReportPage::class)->name('reports.equipment'); }); Route::middleware('role:admin')->group(function () { Route::get('/users/create', UserFormPage::class)->name('users.create'); Route::get('/users/{user}/edit', UserFormPage::class) ->whereNumber('user') ->name('users.edit'); Route::get('/directories', fn () => redirect()->route('directories.departments'))->name('directories'); Route::get('/directories/departments', DepartmentsPage::class)->name('directories.departments'); Route::get('/directories/equipment-categories', EquipmentCategoriesPage::class)->name('directories.equipment-categories'); Route::get('/directories/request-types', RequestTypesPage::class)->name('directories.request-types'); Route::get('/directories/equipment', EquipmentPage::class)->name('directories.equipment'); Route::get('/activity-log', ActivityLogPage::class)->name('activity-log'); Route::get('/settings', SettingsPage::class)->name('settings'); }); Route::middleware('role:technician')->group(function () { Route::get('/my-tasks', MyTasksPage::class)->name('my-tasks'); }); Route::middleware('role:client')->group(function () { Route::get('/my-requests', MyRequestsIndexPage::class)->name('my-requests.index'); Route::get('/my-requests/create', MyRequestFormPage::class)->name('my-requests.create'); }); });