name('login'); Route::post('/login', [AuthController::class, 'login'])->middleware('throttle:5,1'); Route::get('/password/forgot', [AuthController::class, 'showForgotPassword'])->name('password.forgot'); Route::post('/password/forgot', [AuthController::class, 'sendForgotPassword'])->middleware('throttle:3,1'); Route::get('/password/reset/{token}', [AuthController::class, 'showResetPassword'])->name('password.reset'); Route::post('/password/reset/{token}', [AuthController::class, 'resetPassword']) ->middleware('throttle:5,1') ->name('password.reset.update'); Route::middleware(['auth.ldap', 'audit.web'])->group(function () { Route::get('/profile', [ProfileController::class, 'show'])->name('profile.show'); Route::put('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::post('/profile/password-reset', [ProfileController::class, 'sendPasswordReset']) ->middleware('throttle:3,1') ->name('profile.password-reset'); Route::post('/profile/test-email', [ProfileController::class, 'testEmail']) ->middleware('throttle:3,1') ->name('profile.test-email'); Route::get('/api-docs', [ApiDocsController::class, 'index'])->name('api-docs.index'); Route::get('/api-docs/openapi.json', [ApiDocsController::class, 'openapi'])->name('api-docs.openapi'); Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); Route::post('/audit/beacon/context', [AuditBeaconController::class, 'storeContext']) ->middleware('throttle:30,1') ->name('audit.beacon.context'); Route::post('/audit/beacon/page-view', [AuditBeaconController::class, 'pageView']) ->middleware('throttle:120,1') ->name('audit.beacon.page-view'); Route::post('/audit/beacon/page-duration', [AuditBeaconController::class, 'pageDuration']) ->middleware('throttle:120,1') ->name('audit.beacon.page-duration'); }); Route::middleware(['auth.ldap', 'auth.admin', 'audit.web'])->group(function () { Route::get('/', [DatabaseController::class, 'index'])->name('databases.index'); Route::post('/databases/{database}/offline', [DatabaseController::class, 'offline']) ->name('databases.offline'); Route::get('/ldap-users', [LdapUserController::class, 'index'])->name('ldap-users.index'); Route::get('/ldap-users/{username}', [LdapUserController::class, 'show'])->name('ldap-users.show'); Route::get('/ldap-users/{username}/edit', [LdapUserController::class, 'edit'])->name('ldap-users.edit'); Route::put('/ldap-users/{username}', [LdapUserController::class, 'update'])->name('ldap-users.update'); Route::post('/ldap-users/{username}/groups', [LdapUserController::class, 'addToGroup']) ->name('ldap-users.groups.add'); Route::delete('/ldap-users/{username}/groups/{group}', [LdapUserController::class, 'removeFromGroup']) ->name('ldap-users.groups.remove'); Route::post('/ldap-users/{username}/toggle-enabled', [LdapUserController::class, 'toggleEnabled']) ->name('ldap-users.toggle-enabled'); Route::get('/ldap-users/{username}/password', [LdapUserController::class, 'showPasswordForm']) ->name('ldap-users.password'); Route::post('/ldap-users/{username}/password', [LdapUserController::class, 'resetPassword']) ->name('ldap-users.password.reset'); Route::get('/ldap-groups', [LdapGroupController::class, 'index'])->name('ldap-groups.index'); Route::post('/ldap-groups', [LdapGroupController::class, 'store'])->name('ldap-groups.store'); Route::get('/ldap-groups/{group}', [LdapGroupController::class, 'show'])->name('ldap-groups.show'); Route::put('/ldap-groups/{group}/note', [LdapGroupController::class, 'updateNote'])->name('ldap-groups.note.update'); Route::delete('/ldap-groups/{group}', [LdapGroupController::class, 'destroy'])->name('ldap-groups.destroy'); Route::post('/ldap-groups/{group}/members', [LdapGroupController::class, 'addMember']) ->name('ldap-groups.members.add'); Route::delete('/ldap-groups/{group}/members/{username}', [LdapGroupController::class, 'removeMember']) ->name('ldap-groups.members.remove'); Route::get('/api-clients', [ApiClientController::class, 'index'])->name('api-clients.index'); Route::post('/api-clients/tokens', [ApiClientController::class, 'storeToken'])->name('api-clients.tokens.store'); Route::delete('/api-clients/tokens/{apiToken}', [ApiClientController::class, 'destroyToken'])->name('api-clients.tokens.destroy'); Route::post('/api-clients/oauth', [ApiClientController::class, 'storeOAuthClient'])->name('api-clients.oauth.store'); Route::delete('/api-clients/oauth/{clientId}', [ApiClientController::class, 'destroyOAuthClient'])->name('api-clients.oauth.destroy'); Route::get('/mail-settings', [MailSettingsController::class, 'index'])->name('mail-settings.index'); Route::put('/mail-settings/smtp', [MailSettingsController::class, 'updateSmtp'])->name('mail-settings.smtp.update'); Route::post('/mail-settings/test', [MailSettingsController::class, 'testEmail'])->name('mail-settings.test'); Route::put('/mail-settings/templates/{slug}', [MailSettingsController::class, 'updateTemplate'])->name('mail-settings.templates.update'); Route::post('/mail-settings/templates/{slug}/test', [MailSettingsController::class, 'testTemplate']) ->middleware('throttle:5,1') ->name('mail-settings.templates.test'); Route::get('/database-connections', [DatabaseConnectionController::class, 'index'])->name('database-connections.index'); Route::post('/database-connections', [DatabaseConnectionController::class, 'store'])->name('database-connections.store'); Route::post('/database-connections/test', [DatabaseConnectionController::class, 'test'])->name('database-connections.test'); Route::delete('/database-connections/{databaseConnection}', [DatabaseConnectionController::class, 'destroy'])->name('database-connections.destroy'); Route::get('/audit-logs', [AuditLogController::class, 'index'])->name('audit-logs.index'); });