diff options
Diffstat (limited to 'inc')
-rw-r--r-- | inc/user.inc.php | 17 |
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()) |