feat: readd permissions API via new env API

This commit is contained in:
TopchetoEU 2023-12-27 13:16:12 +02:00
parent bf38587271
commit 153a1a9a49
Signed by: topchetoeu
GPG Key ID: 6531B8583E5F6ED4

View File

@ -1,6 +1,11 @@
package me.topchetoeu.jscript.permissions;
import me.topchetoeu.jscript.engine.Extensions;
import me.topchetoeu.jscript.engine.values.Symbol;
public interface PermissionsProvider {
public static final Symbol ENV_KEY = new Symbol("Environment.perms");
boolean hasPermission(Permission perm, char delim);
boolean hasPermission(Permission perm);
@ -10,4 +15,17 @@ public interface PermissionsProvider {
default boolean hasPermission(String perm) {
return hasPermission(new Permission(perm));
}
public static PermissionsProvider get(Extensions exts) {
return new PermissionsProvider() {
@Override public boolean hasPermission(Permission perm) {
if (exts.has(ENV_KEY)) return ((PermissionsProvider)exts.get(ENV_KEY)).hasPermission(perm);
else return true;
}
@Override public boolean hasPermission(Permission perm, char delim) {
if (exts.has(ENV_KEY)) return ((PermissionsProvider)exts.get(ENV_KEY)).hasPermission(perm, delim);
else return true;
}
};
}
}