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 | 6fdeddd96b74cfe66815cca6fafa1f62486ea4a6 (patch) | |
tree | f2fb5cf8fa38d754e83090b974bb63d606c5ed5b /EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions | |
parent | 8082508db927040e1e7b5130750d225ab63bdb9f (diff) | |
parent | 04c833f6486ed8da1fed0431f7aaa5cd5769c797 (diff) | |
download | Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.gz Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.lz Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.tar.xz Essentials-6fdeddd96b74cfe66815cca6fafa1f62486ea4a6.zip |
Merge remote-tracking branch 'origin/groupmanager' into 2.9
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions')
-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). |