2020-04-08 04:19:24 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
use App\Controller;
|
2022-01-07 08:26:40 +00:00
|
|
|
use App\Enums\GlobalPermissions;
|
2022-02-04 02:30:20 +00:00
|
|
|
use App\Http\Response;
|
|
|
|
use App\Http\ServerRequest;
|
2020-04-08 04:19:24 +00:00
|
|
|
use App\Middleware;
|
2022-02-04 02:30:20 +00:00
|
|
|
use Psr\Http\Message\ResponseInterface;
|
2020-04-08 04:19:24 +00:00
|
|
|
use Slim\Routing\RouteCollectorProxy;
|
|
|
|
|
2021-08-27 23:45:25 +00:00
|
|
|
return static function (RouteCollectorProxy $app) {
|
2021-01-11 02:41:58 +00:00
|
|
|
$app->get('/', Controller\Frontend\IndexAction::class)
|
2020-04-08 04:19:24 +00:00
|
|
|
->setName('home');
|
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$app->group(
|
|
|
|
'',
|
|
|
|
function (RouteCollectorProxy $group) {
|
2021-01-11 02:41:58 +00:00
|
|
|
$group->get('/dashboard', Controller\Frontend\DashboardAction::class)
|
2020-12-22 21:40:33 +00:00
|
|
|
->setName('dashboard');
|
|
|
|
|
|
|
|
$group->get('/logout', Controller\Frontend\Account\LogoutAction::class)
|
|
|
|
->setName('account:logout');
|
|
|
|
|
2021-10-27 23:15:33 +00:00
|
|
|
$group->get('/login-as/{id}/{csrf}', Controller\Frontend\Account\MasqueradeAction::class)
|
|
|
|
->setName('account:masquerade')
|
2022-01-07 08:26:40 +00:00
|
|
|
->add(new Middleware\Permissions(GlobalPermissions::All));
|
2021-10-27 23:15:33 +00:00
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->get('/endsession', Controller\Frontend\Account\EndMasqueradeAction::class)
|
|
|
|
->setName('account:endmasquerade');
|
|
|
|
|
2022-02-04 02:30:20 +00:00
|
|
|
$group->get(
|
|
|
|
'/api_keys',
|
|
|
|
function (ServerRequest $request, Response $response): ResponseInterface {
|
|
|
|
return $response->withRedirect('/profile');
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->get('/profile', Controller\Frontend\Profile\IndexAction::class)
|
|
|
|
->setName('profile:index');
|
|
|
|
|
|
|
|
$group->get('/profile/theme', Controller\Frontend\Profile\ThemeAction::class)
|
|
|
|
->setName('profile:theme');
|
|
|
|
}
|
|
|
|
)->add(Middleware\EnableView::class)
|
2020-04-08 04:19:24 +00:00
|
|
|
->add(Middleware\RequireLogin::class);
|
|
|
|
|
|
|
|
$app->map(['GET', 'POST'], '/login', Controller\Frontend\Account\LoginAction::class)
|
|
|
|
->setName('account:login')
|
|
|
|
->add(Middleware\EnableView::class);
|
|
|
|
|
|
|
|
$app->map(['GET', 'POST'], '/login/2fa', Controller\Frontend\Account\TwoFactorAction::class)
|
|
|
|
->setName('account:login:2fa')
|
|
|
|
->add(Middleware\EnableView::class);
|
|
|
|
|
2021-02-28 02:50:45 +00:00
|
|
|
$app->map(['GET', 'POST'], '/forgot', Controller\Frontend\Account\ForgotPasswordAction::class)
|
|
|
|
->setName('account:forgot')
|
|
|
|
->add(Middleware\EnableView::class);
|
|
|
|
|
|
|
|
$app->map(['GET', 'POST'], '/recover/{token}', Controller\Frontend\Account\RecoverAction::class)
|
|
|
|
->setName('account:recover')
|
|
|
|
->add(Middleware\EnableView::class);
|
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$app->group(
|
|
|
|
'/setup',
|
|
|
|
function (RouteCollectorProxy $group) {
|
|
|
|
$group->map(['GET', 'POST'], '', Controller\Frontend\SetupController::class . ':indexAction')
|
|
|
|
->setName('setup:index');
|
2020-04-08 04:19:24 +00:00
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->map(['GET', 'POST'], '/complete', Controller\Frontend\SetupController::class . ':completeAction')
|
|
|
|
->setName('setup:complete');
|
2020-04-08 04:19:24 +00:00
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->map(['GET', 'POST'], '/register', Controller\Frontend\SetupController::class . ':registerAction')
|
|
|
|
->setName('setup:register');
|
2020-04-08 04:19:24 +00:00
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->map(['GET', 'POST'], '/station', Controller\Frontend\SetupController::class . ':stationAction')
|
|
|
|
->setName('setup:station');
|
2020-04-08 04:19:24 +00:00
|
|
|
|
2020-12-22 21:40:33 +00:00
|
|
|
$group->map(['GET', 'POST'], '/settings', Controller\Frontend\SetupController::class . ':settingsAction')
|
|
|
|
->setName('setup:settings');
|
|
|
|
}
|
|
|
|
)->add(Middleware\EnableView::class);
|
|
|
|
};
|