summaryrefslogtreecommitdiffstats
path: root/inc
diff options
context:
space:
mode:
Diffstat (limited to 'inc')
-rw-r--r--inc/user.inc.php17
1 files changed, 16 insertions, 1 deletions
diff --git a/inc/user.inc.php b/inc/user.inc.php
index f7688b00..13e56cd3 100644
--- a/inc/user.inc.php
+++ b/inc/user.inc.php
@@ -26,13 +26,28 @@ class User
return self::$user['fullname'];
}
- public static function hasPermission($permission)
+ public static function hasPermission($permission, $locationid = NULL)
{
if (!self::isLoggedIn())
return false;
+ if (Module::isAvailable("permissionmanager")) {
+ $module = Page::getModule();
+ $permission = $module ? $module->getIdentifier().".".$permission : $permission;
+ return PermissionUtil::userHasPermission(self::$user['userid'], $permission, $locationid);
+ }
return (self::$user['permissions'] & (Permission::get($permission) | Permission::get('superadmin'))) != 0;
}
+ public static function getAllowedLocations($permission)
+ {
+ if (Module::isAvailable("permissionmanager")) {
+ $module = Page::getModule();
+ $permission = $module ? $module->getIdentifier().".".$permission : $permission;
+ return PermissionUtil::getAllowedLocations(self::$user['userid'], $permission);
+ }
+ return array();
+ }
+
public static function load()
{
if (self::isLoggedIn())