summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-14 15:30:28 +0200
committerSimon Rettberg2015-08-14 15:30:28 +0200
commit20b9bfcd894a1f5ddb710884e40ce38736300a3d (patch)
tree2b85cef9e92b1fbca01dcfbd9a8b0d47d18b52a2 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
parent[client] Layout; don't close lecture wizard if creation failed (diff)
downloadtutor-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.java22
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())