From 605c4cbeccdc6e295b703729ca6ceafa1608c2c9 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Fri, 15 Sep 2017 12:22:40 +0200 Subject: [PATCH] Add permission handling test --- Controller.php | 18 ++++++++++++++++++ Models/PermissionState.php | 31 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 Models/PermissionState.php diff --git a/Controller.php b/Controller.php index 7b1fd94..0608ebd 100644 --- a/Controller.php +++ b/Controller.php @@ -23,12 +23,14 @@ use Modules\Tasks\Models\TaskElementMapper; use Modules\Tasks\Models\TaskMapper; use Modules\Tasks\Models\TaskStatus; use Modules\Tasks\Models\TaskType; +use Modules\Tasks\Models\PermissionState; use phpOMS\Message\RequestAbstract; use phpOMS\Message\ResponseAbstract; use phpOMS\Module\ModuleAbstract; use phpOMS\Module\WebInterface; use phpOMS\Uri\UriFactory; use phpOMS\Views\View; +use phpOMS\Account\PermissionType; /** * Task class. @@ -66,6 +68,14 @@ class Controller extends ModuleAbstract implements WebInterface */ /* public */ const MODULE_NAME = 'Tasks'; + /** + * Module name. + * + * @var string + * @since 1.0.0 + */ + /* public */ const MODULE_ID = 1001100000; + /** * Providing. * @@ -97,6 +107,14 @@ class Controller extends ModuleAbstract implements WebInterface public function viewTaskDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable { $view = new View($this->app, $request, $response); + + if (!$this->app->accountManager->get($request->getHeader()->getAccount())->hasPermission( + PermissionType::READ, 1, $this->app->appName, self::MODULE_ID, PermissionState::DASHBOARD) + ) { + $view->setTemplate('/Web/Backend/Error/403_inline'); + return $view; + } + $view->setTemplate('/Modules/Tasks/Theme/Backend/task-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); diff --git a/Models/PermissionState.php b/Models/PermissionState.php new file mode 100644 index 0000000..95d231d --- /dev/null +++ b/Models/PermissionState.php @@ -0,0 +1,31 @@ +