Files
api/services/nginx/app/routes/permissionsRoute.php
T
Jepp9350 367dfc44e4 Add role and permission management functionality
Introduce classes `groups_o` and `groups_permissions_o` for managing roles and permissions. Add new routes `rolesRoute` and `permissionsRoute` to handle role and permission-related operations. Enhance `users_o` with the `getGroup` method and update `db_object_t` for improved table handling and pagination support.
2025-02-20 17:04:35 +01:00

57 lines
1.8 KiB
PHP

<?php
namespace routes;
use classes\authentication;
use classes\response;
use classes\router;
use objects\logs_o;
use traits\route_t;
class permissionsRoute
{
use route_t;
public function run(): void
{
global /** @var response $response */
/** @var router $router */
$router, $response;
/** Permissions > List */
$this->get('/permissions', function () {
global $response, $router;
$this->requirePermission('permissions_list');
$user = (new authentication())->get_user();
if ($user) {
(new logs_o())->add('permissions', 'global', 1, 0, 'PERMISSIONS', 'User accessed the permissions list');
$response->success($router->getPermissions());
} else {
$response->error('Invalid session', 400);
}
},
[
'permissions_list' => 'List all permissions'
]
);
/** Permissions > User > List */
self::get('/user/permissions', function () {
global $response;
self::requirePermission('permissions_list_own');
$user = (new authentication())->get_user();
if ($user) {
(new logs_o())->add('permissions', 'global', 1, 0, 'PERMISSIONS', 'User accessed the user permissions list');
$response->success((object)$user->getGroup()->getPermissions());
} else {
(new logs_o())->add('permissions', 'global', 0, 0, 'PERMISSIONS', 'User tried to access the user permissions list without a valid session');
$response->error('Invalid session', 400);
}
},
[
'permissions_list_own' => 'List all user permissions'
]
);
}
}