Index: permissions_helper.php =================================================================== --- permissions_helper.php (revision 13557) +++ permissions_helper.php (working copy) @@ -110,6 +110,11 @@ $perm_status = false; foreach ($check_perms as $perm_name) { // check if at least one of required permissions is set + if ($perm_name == 'debug' && $this->Application->isDebugMode(false)) { + // universal "debug" permission + return true; + } + $perm_name = $section.'.'.$perm_name; $perm_status = $this->CheckPermission($perm_name, 1); if (($perm_name == $section.'.add') && $perm_status && ($top_prefix == $event->Prefix)) { @@ -170,7 +175,8 @@ // mapping between specific permissions and common permissions static $perm_mapping = Array( 'add' => 'ADD', 'add.pending' => 'ADD.PENDING', 'edit' => 'MODIFY', - 'edit.pending' => 'MODIFY.PENDING', 'delete' => 'DELETE', 'view' => 'VIEW' + 'edit.pending' => 'MODIFY.PENDING', 'delete' => 'DELETE', 'view' => 'VIEW', + 'debug' => 'DEBUG' ); $top_prefix = $event->getEventParam('top_prefix'); @@ -243,6 +249,12 @@ // not mapped permission (e.g. advanced:approve) -> skip continue; } + + if ($perm_name == 'debug' && $this->Application->isDebugMode(false)) { + // universal "debug" permission + return true; + } + $perm_name = $item_prefix.'.'.$perm_mapping[$perm_name]; $perm_status = $this->CheckPermission($perm_name, 0, (int)$category_id);