From 153a1a9a492a423e9304b33ff70b6e77d7e7a2b5 Mon Sep 17 00:00:00 2001 From: TopchetoEU <36534413+TopchetoEU@users.noreply.github.com> Date: Wed, 27 Dec 2023 13:16:12 +0200 Subject: [PATCH] feat: readd permissions API via new env API --- .../permissions/PermissionsProvider.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/me/topchetoeu/jscript/permissions/PermissionsProvider.java b/src/me/topchetoeu/jscript/permissions/PermissionsProvider.java index 73c5ee6..352f2c3 100644 --- a/src/me/topchetoeu/jscript/permissions/PermissionsProvider.java +++ b/src/me/topchetoeu/jscript/permissions/PermissionsProvider.java @@ -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; + } + }; + } } \ No newline at end of file