diff options
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.java | 27 |
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"); |