You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
7.7 KiB
113 lines
7.7 KiB
<?php |
|
|
|
use App\Http\Controllers\ApiClientController; |
|
use App\Http\Controllers\ApiDocsController; |
|
use App\Http\Controllers\AuditBeaconController; |
|
use App\Http\Controllers\AuditLogController; |
|
use App\Http\Controllers\AuthController; |
|
use App\Http\Controllers\DatabaseConnectionController; |
|
use App\Http\Controllers\DatabaseController; |
|
use App\Http\Controllers\LdapGroupController; |
|
use App\Http\Controllers\LdapUserController; |
|
use App\Http\Controllers\MailSettingsController; |
|
use App\Http\Controllers\ProfileController; |
|
use App\Http\Controllers\ProjectSearchController; |
|
use Illuminate\Support\Facades\Route; |
|
|
|
Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); |
|
Route::post('/login', [AuthController::class, 'login'])->middleware('throttle:login'); |
|
|
|
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::get('/project-search', [ProjectSearchController::class, 'index'])->name('project-search.index'); |
|
Route::post('/project-search/ask', [ProjectSearchController::class, 'ask']) |
|
->middleware('throttle:20,1') |
|
->name('project-search.ask'); |
|
Route::post('/project-search/end-chat', [ProjectSearchController::class, 'endChat']) |
|
->name('project-search.end-chat'); |
|
Route::post('/logout', [AuthController::class, 'logout'])->name('logout'); |
|
|
|
Route::post('/audit/beacon/context', [AuditBeaconController::class, 'storeContext']) |
|
->middleware('throttle:audit-beacon') |
|
->name('audit.beacon.context'); |
|
Route::post('/audit/beacon/page-view', [AuditBeaconController::class, 'pageView']) |
|
->middleware('throttle:audit-beacon') |
|
->name('audit.beacon.page-view'); |
|
Route::post('/audit/beacon/page-duration', [AuditBeaconController::class, 'pageDuration']) |
|
->middleware('throttle:audit-beacon') |
|
->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'); |
|
|
|
// Service Tokens (microservice Bearer token management) |
|
Route::post('/api-clients/service-tokens', [ApiClientController::class, 'storeServiceToken'])->name('api-clients.service-tokens.store'); |
|
Route::post('/api-clients/service-tokens/{id}/revoke', [ApiClientController::class, 'revokeServiceToken'])->name('api-clients.service-tokens.revoke'); |
|
Route::post('/api-clients/service-tokens/{id}/regenerate', [ApiClientController::class, 'regenerateServiceToken'])->name('api-clients.service-tokens.regenerate'); |
|
Route::delete('/api-clients/service-tokens/{id}', [ApiClientController::class, 'destroyServiceToken'])->name('api-clients.service-tokens.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'); |
|
});
|
|
|