From 773971ca7408c45644d6ec7b09fc4d78788315ef Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 16 Sep 2017 11:11:51 +0200 Subject: [PATCH] More permission managing --- Controller.php | 14 ++++++++++++-- Models/PermissionState.php | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 Models/PermissionState.php diff --git a/Controller.php b/Controller.php index a472646..4246bf3 100644 --- a/Controller.php +++ b/Controller.php @@ -15,6 +15,7 @@ declare(strict_types=1); namespace Modules\Calendar; use Modules\Calendar\Models\CalendarMapper; +use Modules\Calendar\Models\PermissionState; use Modules\Navigation\Models\Navigation; use Modules\Navigation\Views\NavigationView; use phpOMS\Contract\RenderableInterface; @@ -26,6 +27,7 @@ use phpOMS\Module\WebInterface; use phpOMS\Views\View; use phpOMS\Views\ViewLayout; use phpOMS\Asset\AssetType; +use phpOMS\Account\PermissionType; /** * Calendar controller class. @@ -99,11 +101,19 @@ class Controller extends ModuleAbstract implements WebInterface */ public function viewCalendarDashboard(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; + } + /** @var Head $head */ $head = $response->get('Content')->getData('head'); $head->addAsset(AssetType::CSS, $request->getUri()->getBase() . 'Modules/Calendar/Theme/Backend/css/styles.css'); - - $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/Calendar/Theme/Backend/calendar-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001201001, $request, $response)); diff --git a/Models/PermissionState.php b/Models/PermissionState.php new file mode 100644 index 0000000..0e4ba64 --- /dev/null +++ b/Models/PermissionState.php @@ -0,0 +1,34 @@ +