diff options
author | ElgarL <ElgarL@Palmergames.com> | 2014-07-17 10:37:58 +0100 |
---|---|---|
committer | ElgarL <ElgarL@Palmergames.com> | 2014-07-17 10:37:58 +0100 |
commit | bd72eee559b224a06bef4a55a52215e0e79c6528 (patch) | |
tree | b95bcc90c52b0a87efc5a364880888970c5accba /EssentialsGroupManager/src/org/anjocaido/groupmanager | |
parent | d32c692b667e22eb647dfb3fe50ae5d89017d2dd (diff) | |
download | Essentials-bd72eee559b224a06bef4a55a52215e0e79c6528.tar Essentials-bd72eee559b224a06bef4a55a52215e0e79c6528.tar.gz Essentials-bd72eee559b224a06bef4a55a52215e0e79c6528.tar.lz Essentials-bd72eee559b224a06bef4a55a52215e0e79c6528.tar.xz Essentials-bd72eee559b224a06bef4a55a52215e0e79c6528.zip |
Prevent inherited group permission negations overriding higher level group perms.
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager')
-rw-r--r-- | EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java index 12b6d4e7e..717346f20 100644 --- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java +++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/permissions/AnjoPermissionsHandler.java @@ -1069,12 +1069,18 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface { if (resultNow.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) { resultNow.accessLevel = targetPermission; + GroupManager.logger.fine("Found an " + resultNow.resultType + " for " + targetPermission + " in group " + resultNow.owner.getLastName()); return resultNow; } - if (!result.resultType.equals(PermissionCheckResult.Type.NEGATION)) { + /* + * Store the first found permission only. + * This will prevent inherited permission negations overriding higher level perms. + */ + if (result.resultType.equals(PermissionCheckResult.Type.NOTFOUND)) { // No Negation found so store for later // as we need to continue looking for an Exception. + GroupManager.logger.fine("Found an " + resultNow.resultType + " for " + targetPermission + " in group " + resultNow.owner.getLastName()); result = resultNow; } } |