group(function () { Route::post('/auth/login', [AuthController::class, 'login']) ->middleware('throttle:10,1') ->name('api.v1.auth.login'); Route::get('/auth/token-guide', [TokenGuideController::class, 'show']) ->name('api.v1.auth.token-guide'); Route::middleware(['api.auth', 'api.audit'])->group(function () { Route::get('/me', [MeController::class, 'show'])->name('api.v1.me'); Route::get('/databases', [DatabaseController::class, 'index']) ->middleware('api.scope:databases:read') ->name('api.v1.databases.index'); Route::post('/databases/{database}/offline', [DatabaseController::class, 'offline']) ->middleware('api.scope:databases:write') ->name('api.v1.databases.offline'); Route::get('/ldap/users', [LdapUserController::class, 'index']) ->middleware('api.scope:ldap:read') ->name('api.v1.ldap.users.index'); Route::get('/ldap/users/{username}', [LdapUserController::class, 'show']) ->middleware('api.scope:ldap:read') ->name('api.v1.ldap.users.show'); Route::put('/ldap/users/{username}', [LdapUserController::class, 'update']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.users.update'); Route::post('/ldap/users/{username}/groups', [LdapUserController::class, 'addToGroup']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.users.groups.add'); Route::delete('/ldap/users/{username}/groups/{group}', [LdapUserController::class, 'removeFromGroup']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.users.groups.remove'); Route::get('/ldap/groups', [LdapGroupController::class, 'index']) ->middleware('api.scope:ldap:read') ->name('api.v1.ldap.groups.index'); Route::get('/ldap/groups/{group}', [LdapGroupController::class, 'show']) ->middleware('api.scope:ldap:read') ->name('api.v1.ldap.groups.show'); Route::post('/ldap/groups', [LdapGroupController::class, 'store']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.groups.store'); Route::post('/ldap/groups/{group}/members', [LdapGroupController::class, 'addMember']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.groups.members.add'); Route::delete('/ldap/groups/{group}/members/{username}', [LdapGroupController::class, 'removeMember']) ->middleware('api.scope:ldap:write') ->name('api.v1.ldap.groups.members.remove'); Route::get('/project-search/sources', [ProjectSearchController::class, 'sources']) ->middleware('api.scope:project-search:read') ->name('api.v1.project-search.sources'); Route::get('/project-search/index/status', [ProjectSearchController::class, 'indexStatus']) ->middleware('api.scope:project-search:read') ->name('api.v1.project-search.index.status'); Route::post('/project-search/ask', [ProjectSearchController::class, 'ask']) ->middleware(['api.scope:project-search:read', 'throttle:20,1']) ->name('api.v1.project-search.ask'); }); });