diff options
author | Simon Rettberg | 2015-08-14 15:30:28 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-14 15:30:28 +0200 |
commit | 20b9bfcd894a1f5ddb710884e40ce38736300a3d (patch) | |
tree | 2b85cef9e92b1fbca01dcfbd9a8b0d47d18b52a2 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java | |
parent | [client] Layout; don't close lecture wizard if creation failed (diff) | |
download | tutor-module-20b9bfcd894a1f5ddb710884e40ce38736300a3d.tar.gz tutor-module-20b9bfcd894a1f5ddb710884e40ce38736300a3d.tar.xz tutor-module-20b9bfcd894a1f5ddb710884e40ce38736300a3d.zip |
[server] Return permissions for lectures, LectureRead changed
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 | 22 |
1 files changed, 14 insertions, 8 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 4ad815ec..cbc4c690 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 @@ -159,6 +159,7 @@ public class DbLecture { lecture.setHasInternetAccess(rs.getBoolean("hasinternetaccess")); lecture.setDefaultPermissions(DbLecturePermissions.fromResultSetDefault(rs)); lecture.setUserPermissions(DbLecturePermissions.fromResultSetUser(rs)); + User.setCombinedUserPermissions(lecture, user); return lecture; } catch (SQLException e) { LOGGER.error("Query failed in DbLecture.getLectureSummary()", e); @@ -202,6 +203,7 @@ public class DbLecture { lecture.setDefaultPermissions(DbLecturePermissions.fromResultSetDefault(rs)); lecture.setUserPermissions(DbLecturePermissions.fromResultSetUser(rs)); lecture.setIsImageVersionUsable(rs.getBoolean("imgvalid")); + User.setCombinedUserPermissions(lecture, user); list.add(lecture); } return list; @@ -227,11 +229,12 @@ public class DbLecture { TNotFoundException { try (MysqlConnection connection = Database.getConnection()) { MysqlStatement stmt = connection.prepareStatement("SELECT" - + " l.lectureid, l.displayname AS lecturename, l.description, l.imageversionid, l.autoupdate," - + " l.isenabled, l.starttime, l.endtime, l.lastused, l.usecount, l.createtime, l.updatetime," - + " l.ownerid, l.updaterid, l.runscript, l.nics, l.netrules, l.isexam, l.hasinternetaccess," - + " l.caneditdefault, l.canadmindefault, p.canedit, p.canadmin" + + " l.lectureid, l.displayname AS lecturename, l.description, l.imageversionid, i.imagebaseid," + + " l.autoupdate, l.isenabled, l.starttime, l.endtime, l.lastused, l.usecount, l.createtime," + + " l.updatetime, l.ownerid, l.updaterid, l.runscript, l.nics, l.netrules, l.isexam," + + " l.hasinternetaccess, l.caneditdefault, l.canadmindefault, p.canedit, p.canadmin" + " FROM lecture l " + + " INNER JOIN imageversion i USING (imageversionid)" + " LEFT JOIN lecturepermission p ON (l.lectureid = p.lectureid AND p.userid = :userid)" + " WHERE l.lectureid = :lectureid LIMIT 1"); stmt.setString("userid", user.userId); @@ -242,6 +245,8 @@ public class DbLecture { LectureRead lecture = new LectureRead(); lecture.setLectureId(rs.getString("lectureid")); lecture.setLectureName(rs.getString("lecturename")); + lecture.setImageBaseId(rs.getString("imagebaseid")); + lecture.setImageVersionId(rs.getString("imageversionid")); lecture.setDescription(rs.getString("description")); lecture.setAutoUpdate(rs.getBoolean("autoupdate")); lecture.setIsEnabled(rs.getBoolean("isenabled")); @@ -265,9 +270,10 @@ public class DbLecture { LOGGER.warn("Could not deserialize netrules for lecture " + lectureId, e); } } - lecture.setImage(DbImage.getImageSummary(connection, user, - DbImage.getBaseIdForVersionId(connection, rs.getString("imageversionid")))); lecture.setAllowedUsers(getAllowedUsers(connection, lectureId)); + lecture.setDefaultPermissions(DbLecturePermissions.fromResultSetDefault(rs)); + lecture.setUserPermissions(DbLecturePermissions.fromResultSetUser(rs)); + User.setCombinedUserPermissions(lecture, user); return lecture; } catch (SQLException e) { LOGGER.error("Query failed in DbLecture.getLectureDetails()", e); @@ -318,8 +324,8 @@ public class DbLecture { * Called when an image version is deleted or marked for deletion, so that * linking lectures switch over to other available versions. */ - protected static void autoSwitchUsedImage(MysqlConnection connection, ImageVersionDetails oldVersion, ImageVersionDetails newVersion) - throws TNotFoundException, SQLException { + protected static void autoSwitchUsedImage(MysqlConnection connection, ImageVersionDetails oldVersion, + ImageVersionDetails newVersion) throws TNotFoundException, SQLException { // First, get list of lectures using the image version to switch away to List<String> lectures = getAllUsingImageVersion(connection, oldVersion.versionId); if (lectures.isEmpty()) |