From 88a7228555741cc1de0d110fc0d88d27aed7aa8c Mon Sep 17 00:00:00 2001 From: Paolo Date: Fri, 6 Apr 2018 17:47:17 +0200 Subject: [PATCH] - Parameter requiredPermissions of FilterWidget now can be also an array - All the permissions of this array will be checked until a valid one is found --- application/controllers/system/Filters.php | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/application/controllers/system/Filters.php b/application/controllers/system/Filters.php index 73ffc0d27..1e98abe07 100644 --- a/application/controllers/system/Filters.php +++ b/application/controllers/system/Filters.php @@ -475,17 +475,34 @@ class Filters extends CI_Controller } /** - * Cheks + * Checks */ private function _isAllowed() { + $isAllowed = false; + if (isset($_SESSION[self::SESSION_NAME]['requiredPermissions'])) { - $requiredPermissions = array( - 'filters' => $_SESSION[self::SESSION_NAME]['requiredPermissions'].':rw' - ); + $tmpRequiredPermissions = $_SESSION[self::SESSION_NAME]['requiredPermissions']; + if (!is_array($tmpRequiredPermissions)) + { + $tmpRequiredPermissions = array($_SESSION[self::SESSION_NAME]['requiredPermissions']); + } - if (!$this->permissionlib->isEntitled($requiredPermissions, 'filters')) + for ($i = 0; $i < count($tmpRequiredPermissions); $i++) + { + $requiredPermissions = array( + 'filters' => $tmpRequiredPermissions[$i].':rw' + ); + + if ($this->permissionlib->isEntitled($requiredPermissions, 'filters')) + { + $isAllowed = true; + break; + } + } + + if (!$isAllowed) { header('Content-Type: application/json');