diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/user.inc.php | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/inc/user.inc.php b/inc/user.inc.php index 27a907c3..f12cc39f 100644 --- a/inc/user.inc.php +++ b/inc/user.inc.php @@ -55,15 +55,24 @@ class User { if (User::hasPermission($permission, $locationid)) return; - Message::addError('main.no-permission'); if (AJAX) { Message::renderList(); exit; } - if (is_null($redirect)) { - Util::redirect('?do=main'); - } else { + if (!is_null($redirect)) { + Message::addError('main.no-permission'); Util::redirect($redirect); + } elseif (Module::isAvailable('permissionmanager')) { + if ($permission{0} !== '.') { + $module = Page::getModule(); + if ($module !== false) { + $permission = '.' . $module->getIdentifier() . '.' . $permission; + } + } + Util::redirect('?do=permissionmanager&show=denied&permission=' . urlencode($permission)); + } else { + Message::addError('main.no-permission'); + Util::redirect('?do=main'); } } |