summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web
diff options
context:
space:
mode:
authorSimon Rettberg2019-02-27 16:17:00 +0100
committerSimon Rettberg2019-02-27 16:17:00 +0100
commit5094bd68c734f836cc437b66af4dbdfbfa5d033e (patch)
tree37770028f2bf8c646f0e5ac097444b27dfc4f21a /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web
parent[client] Fix array out of bounds with old servers (diff)
downloadtutor-module-5094bd68c734f836cc437b66af4dbdfbfa5d033e.tar.gz
tutor-module-5094bd68c734f836cc437b66af4dbdfbfa5d033e.tar.xz
tutor-module-5094bd68c734f836cc437b66af4dbdfbfa5d033e.zip
[server] Support loading/saving preset network rules
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java33
1 files changed, 16 insertions, 17 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java
index 8d10271d..3e91cfc5 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java
@@ -6,6 +6,7 @@ import java.io.PipedInputStream;
import java.io.PipedOutputStream;
import java.nio.charset.StandardCharsets;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.LinkedBlockingQueue;
@@ -23,7 +24,6 @@ import org.openslx.bwlp.sat.database.mappers.DbLecture;
import org.openslx.bwlp.sat.database.mappers.DbLecture.LaunchData;
import org.openslx.bwlp.sat.database.mappers.DbLecture.RunScript;
import org.openslx.bwlp.sat.fileserv.FileServer;
-import org.openslx.bwlp.thrift.iface.LectureRead;
import org.openslx.bwlp.thrift.iface.NetRule;
import org.openslx.bwlp.thrift.iface.NetShare;
import org.openslx.bwlp.thrift.iface.NetShareAuth;
@@ -208,28 +208,27 @@ public class WebServer extends NanoHTTPD {
}
private Response serveLectureNetRules(String lectureId) {
- LectureRead lecture;
+ List<NetRule> list = new ArrayList<>();
+ boolean defaultAllowed;
try {
- lecture = DbLecture.getLectureDetails(null, lectureId);
- } catch (TNotFoundException e) {
- return notFound();
+ defaultAllowed = DbLecture.getFirewallRules(lectureId, list);
} catch (SQLException e) {
return internalServerError();
+ } catch (TNotFoundException e) {
+ return notFound();
}
StringBuilder sb = new StringBuilder();
- if (lecture.networkExceptions != null) {
- for (NetRule rule : lecture.networkExceptions) {
- sb.append(rule.direction.name());
- sb.append(' ');
- sb.append(rule.host);
- sb.append(' ');
- sb.append(rule.port);
- sb.append(' ');
- sb.append(lecture.hasInternetAccess ? "REJECT" : "ACCEPT");
- sb.append('\n');
- }
+ for (NetRule rule : list) {
+ sb.append(rule.direction.name());
+ sb.append(' ');
+ sb.append(rule.host);
+ sb.append(' ');
+ sb.append(rule.port);
+ sb.append(' ');
+ sb.append(defaultAllowed ? "REJECT" : "ACCEPT");
+ sb.append('\n');
}
- if (lecture.hasInternetAccess) {
+ if (defaultAllowed) {
sb.append("IN * 0 ACCEPT\n");
sb.append("OUT * 0 ACCEPT\n");
} else {