diff options
author | snowleo <schneeleo@gmail.com> | 2013-01-18 01:01:23 +0100 |
---|---|---|
committer | snowleo <schneeleo@gmail.com> | 2013-01-18 01:01:23 +0100 |
commit | 0b5d87d5dd987969d7c2a53d3c04c3b7618bb755 (patch) | |
tree | 912b46dccfeb0da1bcd04c8ec2e67480fb30af1f /EssentialsGroupManager/src/org | |
parent | 1530c1957fe2070128377c53c7ed82734a371d20 (diff) | |
parent | 5f5bb2ed8a1bdad5c55b8df60fdbe331720d9954 (diff) | |
download | Essentials-0b5d87d5dd987969d7c2a53d3c04c3b7618bb755.tar Essentials-0b5d87d5dd987969d7c2a53d3c04c3b7618bb755.tar.gz Essentials-0b5d87d5dd987969d7c2a53d3c04c3b7618bb755.tar.lz Essentials-0b5d87d5dd987969d7c2a53d3c04c3b7618bb755.tar.xz Essentials-0b5d87d5dd987969d7c2a53d3c04c3b7618bb755.zip |
Merge remote-tracking branch 'origin/groupmanager' into 2.9
Diffstat (limited to 'EssentialsGroupManager/src/org')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java | 44 |
1 files changed, 33 insertions, 11 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java index 59efb33dc..7396f3f70 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java @@ -768,6 +768,9 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { } /** + * Wrapper for offline server checks. + * Looks for the 'groupmanager.noofflineperms' permissions and reports no permissions on servers set to offline. + * * Check user and groups with inheritance and Bukkit if bukkit = true return * a PermissionCheckResult. * @@ -778,23 +781,42 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { */ public PermissionCheckResult checkFullGMPermission(User user, String targetPermission, Boolean checkBukkit) { - PermissionCheckResult result = new PermissionCheckResult(); - result.accessLevel = targetPermission; - result.resultType = PermissionCheckResult.Type.NOTFOUND; - - if (user == null || targetPermission == null || targetPermission.isEmpty()) { - return result; - } - /* - * Do not push any perms to bukkit if... + * Report no permissions under the following conditions. + * * We are in offline mode * and the player has the 'groupmanager.noofflineperms' permission. */ - if (!Bukkit.getServer().getOnlineMode() - && (checkFullGMPermission(user, "groupmanager.noofflineperms", true).resultType == PermissionCheckResult.Type.FOUND)) + if (user == null || targetPermission == null || targetPermission.isEmpty() || + (!Bukkit.getServer().getOnlineMode() + && (checkPermission(user, "groupmanager.noofflineperms", true).resultType == PermissionCheckResult.Type.FOUND))) { + + PermissionCheckResult result = new PermissionCheckResult(); + result.accessLevel = targetPermission; + result.resultType = PermissionCheckResult.Type.NOTFOUND; + return result; + } + + return checkPermission(user, targetPermission, checkBukkit); + } + + /** + * + * Check user and groups with inheritance and Bukkit if bukkit = true return + * a PermissionCheckResult. + * + * @param user + * @param targetPermission + * @param checkBukkit + * @return PermissionCheckResult + */ + private PermissionCheckResult checkPermission(User user, String targetPermission, Boolean checkBukkit) { + PermissionCheckResult result = new PermissionCheckResult(); + result.accessLevel = targetPermission; + result.resultType = PermissionCheckResult.Type.NOTFOUND; + if (checkBukkit) { // Check Bukkit perms to support plugins which add perms via code // (Heroes). |