js(__DIR__.'/js/dist/forum.js') ->css(__DIR__.'/less/forum.less') ->route('/oauth/authorize', 'oauth.authorize'), (new Extend\Frontend('admin')) ->js(__DIR__.'/js/dist/admin.js') ->css(__DIR__.'/less/admin.less'), new Extend\Locales(__DIR__.'/locale'), (new Extend\Routes('forum')) ->post('/oauth/authorize', 'oauth.authorize.post', Controllers\AuthorizeController::class) ->post('/oauth/token', 'oauth.token', Controllers\TokenController::class), (new Extend\Routes('api')) ->get('/oauth-clients', 'oauth.clients.list', Api\Controller\ListClientController::class) ->post('/oauth-clients', 'oauth.clients.create', Api\Controller\CreateClientController::class) ->get('/oauth-clients/{client_id}', 'oauth.clients.show', Api\Controller\ShowClientController::class) ->patch('/oauth-clients/{id}', 'oauth.clients.update', Api\Controller\UpdateClientController::class) ->delete('/oauth-clients/{id}', 'oauth.clients.delete', Api\Controller\DeleteClientController::class) ->get('/oauth-scopes', 'oauth.scopes.list', Api\Controller\ListScopeController::class) ->post('/oauth-scopes', 'oauth.scopes.create', Api\Controller\CreateScopeController::class) ->patch('/oauth-scopes/{id}', 'oauth.scopes.update', Api\Controller\UpdateScopeController::class) ->delete('/oauth-scopes/{id}', 'oauth.scopes.delete', Api\Controller\DeleteScopeController::class) ->get('/user', 'user.show', Controllers\ApiUserController::class), (new Extend\Settings) ->serializeToForum('rhodes-island-oauth-center.allow_implicit', 'rhodes-island-oauth-center.allow_implicit', 'boolval') ->serializeToForum('rhodes-island-oauth-center.enforce_state', 'rhodes-island-oauth-center.enforce_state', 'boolval') ->serializeToForum('rhodes-island-oauth-center.require_exact_redirect_uri', 'rhodes-island-oauth-center.require_exact_redirect_uri', 'boolval'), (new Extend\Middleware('api')) ->insertAfter(AuthenticateWithHeader::class, ResourceScopeMiddleware::class), (new Extend\Middleware('forum')) ->insertBefore(CheckCsrfToken::class, UnsetCsrfMiddleware::class) ->insertAfter(CheckCsrfToken::class, UserCredentialsMiddleware::class), ];