diff options
author | root | 2019-02-19 18:53:50 +0100 |
---|---|---|
committer | root | 2019-02-19 18:53:50 +0100 |
commit | 0ad4c0f8196b61699754762aacbaab0223478ab9 (patch) | |
tree | de434c4aea8d07ecd01cd3badd48d057d62c2d1b /inc/permission.inc.php | |
parent | [usb-lock-off] Edit rule cleanup and fix of the dropdown boxes. (diff) | |
parent | [statistics] Fix RAM change warning to handle increase too (diff) | |
download | slx-admin-usb-lock-off.tar.gz slx-admin-usb-lock-off.tar.xz slx-admin-usb-lock-off.zip |
Merge branch 'master' into usb-lock-offusb-lock-off
Diffstat (limited to 'inc/permission.inc.php')
-rw-r--r-- | inc/permission.inc.php | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/inc/permission.inc.php b/inc/permission.inc.php index d04e3c3b..aaef6ba6 100644 --- a/inc/permission.inc.php +++ b/inc/permission.inc.php @@ -15,5 +15,41 @@ class Permission return self::$permissions[$permission]; } + + // TODO: Doc/Refactor + public static function addGlobalTags(&$array, $locationid, $disabled, $noneAvailDisabled = null) + { + if (Module::get('permissionmanager') === false) + return; + $one = false; + foreach ($disabled as $perm) { + if (User::hasPermission($perm, $locationid)) { + $one = true; + continue; + } + if (strpos($perm, '.') === false) { + $array[$perm] = ['disabled' => 'disabled', 'readonly' => 'readonly']; + continue; + } + $temp =& $array; + foreach (explode('.', $perm) as $sub) { + if (empty($sub) || $sub === '*') + continue; + $temp =& $temp[$sub]; + } + $temp = ['disabled' => 'disabled', 'readonly' => 'readonly']; + } + if (!$one && !is_null($noneAvailDisabled)) { + $array[$noneAvailDisabled]['disabled'] = true; + } + } + + public static function moduleHasPermissions($moduleId) + { + if (Module::get('permissionmanager') === false) + return true; + return file_exists('modules/' . $moduleId . '/permissions/permissions.json'); + } + } |