diff options
author | Simon Rettberg | 2019-02-27 16:17:00 +0100 |
---|---|---|
committer | Simon Rettberg | 2019-02-27 16:17:00 +0100 |
commit | 5094bd68c734f836cc437b66af4dbdfbfa5d033e (patch) | |
tree | 37770028f2bf8c646f0e5ac097444b27dfc4f21a /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java | |
parent | [client] Fix array out of bounds with old servers (diff) | |
download | tutor-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/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"); |