update has_perm check
All checks were successful
/ Auto-Build-App (push) Successful in 1m35s

This commit is contained in:
pietru 2024-12-28 23:22:25 +01:00
parent 215fe42448
commit 36d04bc041

View file

@ -108,11 +108,34 @@ public class Permissions {
}
public static boolean has_perm(String playerId,String perm){
if (perm.isEmpty())
return has_user_special_perm(playerId);
GroupPerms group = default_group;
if (player_group.containsKey(playerId))
if (groupPermsMap.containsKey(player_group.get(playerId)))
group=groupPermsMap.get(player_group.get(playerId));
return has_user_special_perm(playerId) || group.has_perm(perm) || group.has_perm("*");
String[] perm_parts = perm.split("\\.");
boolean has_valid_perm = group.has_perm("*");
if (!has_valid_perm){
for (int i = 0; i < perm_parts.length; i++) {
StringBuilder perm_test = new StringBuilder();
for (int j = 0; j < i + 1; j++) {
if (j < i)
perm_test.append(perm_parts[j]).append(".");
else {
if (perm_parts.length == i + 1)
perm_test.append(perm_parts[j]);
else
perm_test.append("*");
}
}
if (group.has_perm(perm_test.toString())) {
has_valid_perm = true;
break;
}
}
}
return has_user_special_perm(playerId) || has_valid_perm;
}
public static GroupPerms get_group(String playerId){