summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
index a51a168a..9bae8009 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
@@ -156,6 +156,9 @@ public class DbLecture {
if (lecture.isSetPresetScriptIds()) {
DbRunScript.writeLectureRunScripts(connection, lectureId, lecture.presetScriptIds);
}
+ if (lecture.isSetPresetNetworkExceptionIds()) {
+ DbLectureNetworkRules.writeLectureNetworkExceptions(connection, lectureId, lecture.presetNetworkExceptionIds);
+ }
stmt.executeUpdate();
}
@@ -337,6 +340,7 @@ public class DbLecture {
lecture.setRunscript(rs.getString("runscript"));
lecture.setNics(null); // TODO fill nics
lecture.setNetworkExceptions(decodeNetrules(rs.getString("netrules")));
+ lecture.setPresetNetworkExceptionIds(DbLectureNetworkRules.getForEdit(connection, lectureId));
lecture.setIsExam(rs.getBoolean("isexam"));
lecture.setHasInternetAccess(rs.getBoolean("hasinternetaccess"));
lecture.setHasUsbAccess(rs.getBoolean("hasusbaccess"));
@@ -609,6 +613,29 @@ public class DbLecture {
return retval;
}
+ public static boolean getFirewallRules(String lectureId, List<NetRule> list) throws SQLException, TNotFoundException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement stmt = connection.prepareStatement("SELECT netrules, hasinternetaccess FROM lecture"
+ + " WHERE lectureid = :lectureid");
+ stmt.setString("lectureid", lectureId);
+ ResultSet rs = stmt.executeQuery();
+ if (!rs.next())
+ throw new TNotFoundException();
+ NetRule[] json = Json.deserialize(rs.getString("netrules"), NetRule[].class);
+ if (json != null && json.length != 0) {
+ list.addAll(Arrays.asList(json));
+ }
+ List<NetRule> others = DbLectureNetworkRules.getForStartup(connection, lectureId);
+ if (others != null) {
+ list.addAll(others);
+ }
+ return rs.getBoolean("hasinternetaccess");
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in getClientLaunchNetworkExceptions()", e);
+ throw e;
+ }
+ }
+
public static void deleteOld(int minAgeDays) throws SQLException {
try (MysqlConnection connection = Database.getConnection()) {
MysqlStatement stmt = connection.prepareStatement("DELETE FROM lecture WHERE endtime < :cutoff");