diff --git a/Admin/Routes/Web/Backend.php b/Admin/Routes/Web/Backend.php index fedd7bc..0b4cc34 100644 --- a/Admin/Routes/Web/Backend.php +++ b/Admin/Routes/Web/Backend.php @@ -1,54 +1,97 @@ [ [ 'dest' => '\Modules\Knowledgebase\Controller:setUpBackend', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::WIKI, + ], ], ], '^.*/backend/wiki/dashboard.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDashboard', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::WIKI, + ], ], ], '^.*/backend/wiki/category/list.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategoryList', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::CATEGORY, + ], ], ], '^.*/backend/wiki/category/single.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategory', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::CATEGORY, + ], ], ], '^.*/backend/wiki/category/create.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseCategoryCreate', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::CATEGORY, + ], ], ], '^.*/backend/wiki/doc/single.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDoc', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::WIKI, + ], ], ], '^.*/backend/wiki/doc/create.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDocCreate', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::CREATE, + 'state' => PermissionState::WIKI, + ], ], ], '^.*/backend/wiki/doc/list.*$' => [ [ 'dest' => '\Modules\Knowledgebase\Controller:viewKnowledgebaseDocList', 'verb' => RouteVerb::GET, + 'permission' => [ + 'module' => Controller::MODULE_NAME, + 'type' => PermissionType::READ, + 'state' => PermissionState::WIKI, + ], ], ], ]; diff --git a/Controller.php b/Controller.php index db534cc..286211d 100644 --- a/Controller.php +++ b/Controller.php @@ -124,13 +124,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'); - return $view; - } - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); @@ -154,13 +147,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'); - return $view; - } - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); @@ -184,13 +170,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'); - return $view; - } - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-doc-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); @@ -290,14 +269,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::CREATE, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::DOC) - ) { - $view->setTemplate('/Web/Backend/Error/403_inline'); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return $view; - } - $view->setTemplate('/Modules/Knowledgebase/Theme/Backend/wiki-category-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005901001, $request, $response)); @@ -308,14 +279,6 @@ final class Controller extends ModuleAbstract implements WebInterface public function apiWikiDocCreate(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::DOC) - ) { - $response->set('wiki_doc_create', null); - $response->getHeader()->setStatusCode(RequestStatusCode::R_403); - return; - } - if (!empty($val = $this->validateWikiDocCreate($request))) { $response->set('wiki_doc_create', new FormValidation($val)); diff --git a/Models/PermissionState.php b/Models/PermissionState.php index a3b5e6f..c7ecbe8 100644 --- a/Models/PermissionState.php +++ b/Models/PermissionState.php @@ -26,8 +26,6 @@ use phpOMS\Stdlib\Base\Enum; */ abstract class PermissionState extends Enum { - public const DASHBOARD = 1; - public const DOC = 2; - public const CATEGORY = 3; - public const BADGE = 4; + public const CATEGORY = 1; + public const WIKI = 2; }