Skip to content

Commit 4ad4f6c

Browse files
committed
Fixed permission check when the permission in question isn't added to the rank
1 parent 116c81d commit 4ad4f6c

1 file changed

Lines changed: 7 additions & 3 deletions

File tree

src/main/java/nl/svenar/PowerRanks/Data/PowerPermissibleBase.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,12 @@ public boolean hasPermission(String permission) {
4848
boolean containsWildcard = false;
4949
boolean checkedWildcard = false;
5050
boolean disallowed = false;
51+
boolean disallowedValid = false;
5152

5253
for (PRPermission prPermission : permissions) {
5354
if (prPermission.getName().equals(permission)) {
5455
disallowed = !prPermission.getValue();
56+
disallowedValid = true;
5557
break;
5658
}
5759
}
@@ -63,6 +65,7 @@ public boolean hasPermission(String permission) {
6365
if (wildcardPermissions.contains(perm.getName())) {
6466
containsWildcard = true;
6567
disallowed = !perm.getValue();
68+
disallowedValid = true;
6669
break;
6770
}
6871
}
@@ -75,7 +78,8 @@ public boolean hasPermission(String permission) {
7578
PowerRanksVerbose.log("hasPermission", "Permission: " + permission);
7679
PowerRanksVerbose.log("hasPermission",
7780
"Permissions: '" + String.join(", ", getAllPermissionsFormatted(permissions)) + "'");
78-
PowerRanksVerbose.log("hasPermission", "Is Disallowed: " + disallowed);
81+
PowerRanksVerbose.log("hasPermission",
82+
"Is Disallowed: " + disallowed + " (Valid: " + disallowedValid + ")");
7983
PowerRanksVerbose.log("hasPermission", "Has *: " + getAllPermissions(permissions).contains("*"));
8084
PowerRanksVerbose.log("hasPermission", "Is Operator: " + player.isOp());
8185
// PowerRanksVerbose.log("hasPermission", "Return #3: " +
@@ -92,13 +96,13 @@ public boolean hasPermission(String permission) {
9296
return false;
9397
}
9498

95-
if (getAllPermissions(permissions).contains("*") || player.isOp()) {
99+
if (getAllowedPermissions(permissions).contains("*") || player.isOp()) {
96100
return true;
97101
}
98102

99103
try {
100104
return super.hasPermission(permission) || getAllowedPermissions(permissions).contains(permission)
101-
|| !disallowed;
105+
|| (disallowedValid && !disallowed);
102106
} catch (Exception e) {
103107
return getAllowedPermissions(permissions).contains(permission);
104108
}

0 commit comments

Comments
 (0)