diff --git a/PeerAtCodeFramework.jar b/PeerAtCodeFramework.jar index b673db4..d91d1ad 100644 Binary files a/PeerAtCodeFramework.jar and b/PeerAtCodeFramework.jar differ diff --git a/src/dev/peerat/backend/Main.java b/src/dev/peerat/backend/Main.java index e78982c..54eab06 100644 --- a/src/dev/peerat/backend/Main.java +++ b/src/dev/peerat/backend/Main.java @@ -2,6 +2,7 @@ package dev.peerat.backend; import static dev.peerat.framework.RequestType.OPTIONS; +import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -37,11 +38,12 @@ import dev.peerat.framework.Context; import dev.peerat.framework.HttpReader; import dev.peerat.framework.HttpWriter; import dev.peerat.framework.Locker; +import dev.peerat.framework.Locker.Key; import dev.peerat.framework.RequestType; import dev.peerat.framework.Response; import dev.peerat.framework.Route; +import dev.peerat.framework.RouteInterceptor; import dev.peerat.framework.Router; -import dev.peerat.framework.Locker.Key; public class Main{ public static void main(String[] args) throws Exception{ @@ -83,6 +85,22 @@ public class Main{ initRoutes(router, repo, config); + router.addInterceptor(new RouteInterceptor(){ + @Override + public boolean intercept(Matcher matcher, Context context, HttpReader reader, HttpWriter writer, Method method){ + if(method.getDeclaringClass().getPackage().getName().endsWith("admins")){ + try { + Group group = repo.getPlayerGroup(context.getUser().getId(), 1); + if(!group.getName().equalsIgnoreCase("Quarter-Master - Battles PAC x CEI")) return false; + }catch(Exception ex){ + ex.printStackTrace(); + return false; + } + } + return true; + } + }); + new Thread(new Runnable(){ public void run(){ Key key = new Key(); @@ -103,7 +121,7 @@ public class Main{ locker.remove(key); } }).start(); - + if(config.useSsl()) router.configureSSL(config.getSslKeystore(), config.getSslKeystorePasswd()); router.listen(config.getTcpPort(), config.useSsl()); } diff --git a/src/dev/peerat/backend/routes/admins/DynamicLogs.java b/src/dev/peerat/backend/routes/admins/DynamicLogs.java index 6bba502..831f073 100644 --- a/src/dev/peerat/backend/routes/admins/DynamicLogs.java +++ b/src/dev/peerat/backend/routes/admins/DynamicLogs.java @@ -30,9 +30,6 @@ public class DynamicLogs implements Response{ @Route(path = "^/admin/logs$", needLogin = true, websocket = true) public void exec(Matcher matcher, Context context, HttpReader reader, HttpWriter writer) throws Exception{ - Group group = this.repo.getPlayerGroup(context.getUser().getId(), 1); - if(!group.getName().equalsIgnoreCase("Quarter-Master - Battles PAC x CEI")) return; - Key key = new Key(); locker.init(key);