diff options
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.java | 33 |
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 { |