mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-02-05 06:51:37 +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.owner instanceof User) {
|
||||||
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
||||||
sender.sendMessage(ChatColor.YELLOW + "The user has directly a negation node for that permission.");
|
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 {
|
} else {
|
||||||
sender.sendMessage(ChatColor.YELLOW + "The user has directly this permission.");
|
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) {
|
} else if (permissionResult.owner instanceof Group) {
|
||||||
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
if (permissionResult.resultType.equals(PermissionCheckResult.Type.NEGATION)) {
|
||||||
sender.sendMessage(ChatColor.YELLOW + "The user inherits a negation permission from group: " + permissionResult.owner.getName());
|
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 {
|
} else {
|
||||||
sender.sendMessage(ChatColor.YELLOW + "The user inherits the permission from group: " + permissionResult.owner.getName());
|
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);
|
PermissionCheckResult resultUser = checkUserOnlyPermission(user, targetPermission);
|
||||||
if (resultUser.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
if (resultUser.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
||||||
|
|
||||||
resultUser.accessLevel = targetPermission;
|
resultUser.accessLevel = targetPermission;
|
||||||
|
|
||||||
|
if (resultUser.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||||
return resultUser;
|
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);
|
PermissionCheckResult resultGroup = checkGroupPermissionWithInheritance(user.getGroup(), targetPermission);
|
||||||
if (resultGroup.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
if (resultGroup.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
||||||
|
|
||||||
resultGroup.accessLevel = targetPermission;
|
resultGroup.accessLevel = targetPermission;
|
||||||
|
|
||||||
|
if (resultGroup.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||||
return resultGroup;
|
return resultGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
result = resultGroup;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// SUBGROUPS CHECK
|
// SUBGROUPS CHECK
|
||||||
for (Group subGroup : user.subGroupListCopy()) {
|
for (Group subGroup : user.subGroupListCopy()) {
|
||||||
|
|
||||||
PermissionCheckResult resultSubGroup = checkGroupPermissionWithInheritance(subGroup, targetPermission);
|
PermissionCheckResult resultSubGroup = checkGroupPermissionWithInheritance(subGroup, targetPermission);
|
||||||
|
|
||||||
|
|
||||||
if (resultSubGroup.resultType != PermissionCheckResult.Type.NOTFOUND) {
|
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;
|
resultSubGroup.accessLevel = targetPermission;
|
||||||
|
|
||||||
|
if (resultSubGroup.resultType == PermissionCheckResult.Type.EXCEPTION) {
|
||||||
|
|
||||||
return resultSubGroup;
|
return resultSubGroup;
|
||||||
|
|
||||||
|
} else if ((resultSubGroup.resultType == PermissionCheckResult.Type.FOUND) && (result.resultType != PermissionCheckResult.Type.NEGATION)) {
|
||||||
|
|
||||||
|
result = resultSubGroup;
|
||||||
|
|
||||||
} else if (resultSubGroup.resultType == PermissionCheckResult.Type.NEGATION) {
|
} else if (resultSubGroup.resultType == PermissionCheckResult.Type.NEGATION) {
|
||||||
resultSubGroup.accessLevel = targetPermission;
|
|
||||||
result = resultSubGroup;
|
result = resultSubGroup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user