mirror of
https://github.com/EssentialsX/Essentials.git
synced 2024-11-06 02:51:32 +01:00
Fix manucheckp to understand and report correctly on Exception nodes.
This commit is contained in:
parent
92bb4e0e66
commit
f0947e9a7c
@ -972,6 +972,8 @@ public class GroupManager extends JavaPlugin {
|
||||
if (permissionResult.owner instanceof User) {
|
||||
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user has directly a negation node for that permission.");
|
||||
} else if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user has directly an Exception node for that permission.");
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user has directly this permission.");
|
||||
}
|
||||
@ -979,6 +981,8 @@ public class GroupManager extends JavaPlugin {
|
||||
} else if (permissionResult.owner instanceof Group) {
|
||||
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user inherits a negation permission from group: " + permissionResult.owner.getName());
|
||||
} else if (permissionResult.resultType.equals(PermissionCheckResult.Type.EXCEPTION)) {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user inherits an Exception permission from group: " + permissionResult.owner.getName());
|
||||
} else {
|
||||
sender.sendMessage(ChatColor.YELLOW + "The user inherits the permission from group: " + permissionResult.owner.getName());
|
||||
}
|
||||
|
@ -898,32 +898,49 @@ public class AnjoPermissionsHandler extends PermissionsReaderInterface {
|
||||
|
||||
PermissionCheckResult resultUser = checkUserOnlyPermission(user, targetPermission);
|
||||
if (resultUser.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
||||
|
||||
resultUser.accessLevel = targetPermission;
|
||||
|
||||
if (resultUser.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||
return resultUser;
|
||||
}
|
||||
|
||||
// IT ONLY CHECKS GROUPS PERMISSIONS IF RESULT FOR USER IS NOT FOUND
|
||||
result = resultUser;
|
||||
|
||||
}
|
||||
|
||||
// IT ONLY CHECKS GROUPS PERMISSIONS IF RESULT FOR USER IS NOT AN EXCEPTION
|
||||
PermissionCheckResult resultGroup = checkGroupPermissionWithInheritance(user.getGroup(), targetPermission);
|
||||
if (resultGroup.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
||||
|
||||
resultGroup.accessLevel = targetPermission;
|
||||
|
||||
if (resultGroup.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||
return resultGroup;
|
||||
}
|
||||
|
||||
result = resultGroup;
|
||||
|
||||
}
|
||||
|
||||
// SUBGROUPS CHECK
|
||||
for (Group subGroup : user.subGroupListCopy()) {
|
||||
|
||||
PermissionCheckResult resultSubGroup = checkGroupPermissionWithInheritance(subGroup, targetPermission);
|
||||
|
||||
|
||||
if (resultSubGroup.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
||||
|
||||
if ((resultSubGroup.resultType == PermissionCheckResult.Type.FOUND) && (result.resultType != PermissionCheckResult.Type.NEGATION)) {
|
||||
resultSubGroup.accessLevel = targetPermission;
|
||||
result = resultSubGroup;
|
||||
} else if (resultSubGroup.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||
resultSubGroup.accessLevel = targetPermission;
|
||||
|
||||
if (resultSubGroup.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||
|
||||
return resultSubGroup;
|
||||
|
||||
} else if ((resultSubGroup.resultType == PermissionCheckResult.Type.FOUND) && (result.resultType != PermissionCheckResult.Type.NEGATION)) {
|
||||
|
||||
result = resultSubGroup;
|
||||
|
||||
} else if (resultSubGroup.resultType == PermissionCheckResult.Type.NEGATION) {
|
||||
resultSubGroup.accessLevel = targetPermission;
|
||||
|
||||
result = resultSubGroup;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user