summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2018-02-14 13:19:58 +0100
committerSimon Rettberg2018-02-14 13:19:58 +0100
commitc3a4746d44a3909e1281bbb575987888ae80ac7b (patch)
tree4d3608a845c9a21f26ab2746317a7a0e4787d37e
parent[locations] One permission for direct subnet editing; restructure handling a bit (diff)
downloadslx-admin-c3a4746d44a3909e1281bbb575987888ae80ac7b.tar.gz
slx-admin-c3a4746d44a3909e1281bbb575987888ae80ac7b.tar.xz
slx-admin-c3a4746d44a3909e1281bbb575987888ae80ac7b.zip
[inc/Permission] Add parameter to helper; fix for querying foreign module
-rw-r--r--inc/permission.inc.php13
1 files changed, 11 insertions, 2 deletions
diff --git a/inc/permission.inc.php b/inc/permission.inc.php
index defa9f4d..cd41e986 100644
--- a/inc/permission.inc.php
+++ b/inc/permission.inc.php
@@ -16,23 +16,32 @@ class Permission
}
- public static function addGlobalTags(&$array, $locationid, $disabled)
+ // TODO: Doc/Refactor
+ public static function addGlobalTags(&$array, $locationid, $disabled, $noneAvailDisabled = null)
{
if (!Module::isAvailable('permissionmanager'))
return;
+ $one = false;
foreach ($disabled as $perm) {
- if (User::hasPermission($perm, $locationid))
+ if (User::hasPermission($perm, $locationid)) {
+ $one = true;
continue;
+ }
if (strpos($perm, '.') === false) {
$array[$perm]['disabled'] = 'disabled';
continue;
}
$temp =& $array;
foreach (explode('.', $perm) as $sub) {
+ if (empty($sub))
+ continue;
$temp =& $temp[$sub];
}
$temp['disabled'] = 'disabled';
}
+ if (!$one && !is_null($noneAvailDisabled)) {
+ $array[$noneAvailDisabled]['disabled'] = true;
+ }
}
}