diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index 0cebdc4..f47660d 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -1,42 +1,75 @@ [ [ 'dest' => '\Modules\Kanban\Controller:setupStyles', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::KANBAN, + ], ], ], '^.*/backend/kanban/dashboard.*$' => [ [ 'dest' => '\Modules\Kanban\Controller:viewKanbanDashboard', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::KANBAN, + ], ], ], '^.*/backend/kanban/archive.*$' => [ [ 'dest' => '\Modules\Kanban\Controller:viewKanbanArchive', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::KANBAN, + ], ], ], '^.*/backend/kanban/board.*$' => [ [ 'dest' => '\Modules\Kanban\Controller:viewKanbanBoard', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::BOARD, + ], ], ], '^.*/backend/kanban/card.*$' => [ [ 'dest' => '\Modules\Kanban\Controller:viewKanbanCard', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::CARD, + ], ], ], '^.*/backend/kanban/create.*$' => [ [ 'dest' => '\Modules\Kanban\Controller:viewKanbanBoardCreate', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::KANBAN, + ], ], ], ]; diff --git a/Controller.php b/Controller.php index 8b65355..1983cc2 100644 --- a/Controller.php +++ b/Controller.php @@ -129,14 +129,6 @@ final class Controller extends ModuleAbstract implements WebInterface { $view = new View($this->app, $request, $response); - if (!$this->app->accountManager->get($request->getHeader()->getAccount())->hasPermission( - PermissionType::READ, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::DASHBOARD) - ) { - $view->setTemplate('/Web/Backend/Error/403_inline'); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return $view; - } - $view->setTemplate('/Modules/Kanban/Theme/Backend/kanban-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005801001, $request, $response)); @@ -245,14 +237,6 @@ final class Controller extends ModuleAbstract implements WebInterface public function apiKanbanCardCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - if (!$this->app->accountManager->get($request->getHeader()->getAccount())->hasPermission( - PermissionType::CREATE, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::CARD) - ) { - $response->set('kanban_card_create', null); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return; - } - if (!empty($val = $this->validateKanbanCardCreate($request))) { $response->set('kanban_card_create', new FormValidation($val)); @@ -307,14 +291,6 @@ final class Controller extends ModuleAbstract implements WebInterface public function apiKanbanBoardCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - if (!$this->app->accountManager->get($request->getHeader()->getAccount())->hasPermission( - PermissionType::CREATE, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::BOARD) - ) { - $response->set('kanban_board_create', null); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return; - } - if (!empty($val = $this->validateKanbanBoardCreate($request))) { $response->set('kanban_board_create', new FormValidation($val)); @@ -358,14 +334,6 @@ final class Controller extends ModuleAbstract implements WebInterface public function apiKanbanColumnCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : void { - if (!$this->app->accountManager->get($request->getHeader()->getAccount())->hasPermission( - PermissionType::CREATE, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::COLUMN) - ) { - $response->set('kanban_column_create', null); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return; - } - if (!empty($val = $this->validateKanbanColumnCreate($request))) { $response->set('kanban_column_create', new FormValidation($val)); diff --git a/Models/PermissionState.php b/Models/PermissionState.php index 6a34bcf..c42049d 100644 --- a/Models/PermissionState.php +++ b/Models/PermissionState.php @@ -26,9 +26,7 @@ use phpOMS\Stdlib\Base\Enum; */ abstract class PermissionState extends Enum { - public const DASHBOARD = 1; - public const BOARD = 2; - public const COLUMN = 3; - public const CARD = 4; - public const LABEL = 4; + public const BOARD = 1; + public const CARD = 2; + public const KANBAN = 3; }