AzuraCast/src/Controller/Api/Admin/PermissionsController.php

46 lines
1.1 KiB
PHP
Raw Normal View History

<?php
2021-07-19 05:53:45 +00:00
declare(strict_types=1);
namespace App\Controller\Api\Admin;
use App\Acl;
use App\Http\Response;
use App\Http\ServerRequest;
use OpenApi\Annotations as OA;
use Psr\Http\Message\ResponseInterface;
/**
* @OA\Get(path="/admin/permissions",
* operationId="getPermissions",
* tags={"Administration: Roles"},
* description="Return a list of all available permissions.",
* @OA\Response(
* response=200,
* description="Success",
* ),
* @OA\Response(response=403, description="Access denied"),
* security={{"api_key": {}}},
* )
*/
class PermissionsController
{
2021-04-23 05:24:12 +00:00
public function __invoke(
ServerRequest $request,
Response $response,
Acl $acl
): ResponseInterface {
$permissions = [];
2021-04-23 05:24:12 +00:00
foreach ($acl->listPermissions() as $group => $actions) {
2019-09-04 18:00:51 +00:00
foreach ($actions as $action_id => $action_name) {
$permissions[$group][] = [
'id' => $action_id,
'name' => $action_name,
];
}
}
return $response->withJson($permissions);
}
}