summaryrefslogtreecommitdiffstats
path: root/inc/permission.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'inc/permission.inc.php')
-rw-r--r--inc/permission.inc.php36
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');
+ }
+
}