summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-04 15:10:40 +0200
committerSimon Rettberg2015-08-04 15:10:40 +0200
commitd39192f8ed117236f646c8cd37445f501bf7d337 (patch)
tree69f37ac52e7e18929dc782d3824f84e129706df3 /dozentenmodulserver/src/main/java/org/openslx
parent[client] image deletion with user feedback (diff)
downloadtutor-module-d39192f8ed117236f646c8cd37445f501bf7d337.tar.gz
tutor-module-d39192f8ed117236f646c8cd37445f501bf7d337.tar.xz
tutor-module-d39192f8ed117236f646c8cd37445f501bf7d337.zip
[*] Simplify DB scheme by removing version.isenabled and image.currentversionid
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java53
1 files changed, 24 insertions, 29 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
index 9b6b7966..a296ad87 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java
@@ -43,15 +43,14 @@ public class DbImage {
// TODO: Implement tag search functionality
try (MysqlConnection connection = Database.getConnection()) {
MysqlStatement stmt = connection.prepareStatement("SELECT"
- + " i.imagebaseid, i.currentversionid, i.latestversionid, i.displayname,"
+ + " i.imagebaseid, i.latestversionid, i.displayname,"
+ " i.osid, i.virtid, i.createtime, i.updatetime, i.ownerid,"
+ " i.sharemode, i.istemplate, i.canlinkdefault, i.candownloaddefault,"
+ " i.caneditdefault, i.canadmindefault,"
- + " cur.expiretime, cur.filesize, cur.isenabled, cur.isrestricted, cur.isvalid,"
+ + " lat.expiretime, lat.filesize, lat.isrestricted, lat.isvalid,"
+ " lat.uploaderid, lat.isprocessed,"
+ " perm.canlink, perm.candownload, perm.canedit, perm.canadmin"
+ " FROM imagebase i"
- + " LEFT JOIN imageversion cur ON (cur.imageversionid = i.currentversionid)"
+ " LEFT JOIN imageversion lat ON (lat.imageversionid = i.latestversionid)"
+ " LEFT JOIN imagepermission perm ON (i.imagebaseid = perm.imagebaseid AND perm.userid = :userid)"
+ Paginator.limitStatement(page));
@@ -71,7 +70,7 @@ public class DbImage {
public static ImageDetailsRead getImageDetails(UserInfo user, String imageBaseId)
throws TNotFoundException, SQLException {
try (MysqlConnection connection = Database.getConnection()) {
- MysqlStatement stmt = connection.prepareStatement("SELECT i.imagebaseid, i.currentversionid, i.latestversionid,"
+ MysqlStatement stmt = connection.prepareStatement("SELECT i.imagebaseid, i.latestversionid,"
+ " i.displayname, i.description, i.osid, i.virtid, i.createtime, i.updatetime, i.ownerid, i.updaterid,"
+ " i.sharemode, i.istemplate,"
+ " i.canlinkdefault, i.candownloaddefault, i.caneditdefault, i.canadmindefault,"
@@ -89,11 +88,11 @@ public class DbImage {
List<ImageVersionDetails> versions = getImageVersions(connection, imageBaseId);
ImagePermissions defaultPermissions = DbImagePermissions.fromResultSetDefault(rs);
ImageDetailsRead image = new ImageDetailsRead(rs.getString("imagebaseid"),
- rs.getString("currentversionid"), rs.getString("latestversionid"), versions,
- rs.getString("displayname"), rs.getString("description"), tags, rs.getInt("osid"),
- rs.getString("virtid"), rs.getLong("createtime"), rs.getLong("updatetime"),
- rs.getString("ownerid"), rs.getString("updaterid"),
- toShareMode(rs.getString("sharemode")), rs.getByte("istemplate") != 0, defaultPermissions);
+ rs.getString("latestversionid"), versions, rs.getString("displayname"),
+ rs.getString("description"), tags, rs.getInt("osid"), rs.getString("virtid"),
+ rs.getLong("createtime"), rs.getLong("updatetime"), rs.getString("ownerid"),
+ rs.getString("updaterid"), toShareMode(rs.getString("sharemode")),
+ rs.getByte("istemplate") != 0, defaultPermissions);
return image;
} catch (SQLException e) {
LOGGER.error("Query failed in DbImage.getImageDetails()", e);
@@ -112,12 +111,12 @@ public class DbImage {
private static ImageSummaryRead resultSetToSummary(ResultSet rs) throws SQLException {
ImagePermissions defaultPermissions = DbImagePermissions.fromResultSetDefault(rs);
ImageSummaryRead entry = new ImageSummaryRead(rs.getString("imagebaseid"),
- rs.getString("currentversionid"), rs.getString("latestversionid"),
- rs.getString("displayname"), rs.getInt("osid"), rs.getString("virtid"),
- rs.getLong("createtime"), rs.getLong("updatetime"), rs.getLong("expiretime"),
- rs.getString("ownerid"), rs.getString("uploaderid"), toShareMode(rs.getString("sharemode")),
- rs.getLong("filesize"), rs.getByte("isrestricted") != 0, rs.getByte("isvalid") != 0,
- rs.getByte("isprocessed") != 0, rs.getByte("istemplate") != 0, defaultPermissions);
+ rs.getString("latestversionid"), rs.getString("displayname"), rs.getInt("osid"),
+ rs.getString("virtid"), rs.getLong("createtime"), rs.getLong("updatetime"),
+ rs.getLong("expiretime"), rs.getString("ownerid"), rs.getString("uploaderid"),
+ toShareMode(rs.getString("sharemode")), rs.getLong("filesize"),
+ rs.getByte("isrestricted") != 0, rs.getByte("isvalid") != 0, rs.getByte("isprocessed") != 0,
+ rs.getByte("istemplate") != 0, defaultPermissions);
entry.userPermissions = DbImagePermissions.fromResultSetUser(rs);
return entry;
}
@@ -144,15 +143,14 @@ public class DbImage {
protected static ImageSummaryRead getImageSummary(MysqlConnection connection, UserInfo user,
String imageBaseId) throws SQLException, TNotFoundException {
MysqlStatement stmt = connection.prepareStatement("SELECT"
- + " i.imagebaseid, i.currentversionid, i.latestversionid, i.displayname,"
+ + " i.imagebaseid, i.latestversionid, i.displayname,"
+ " i.osid, i.virtid, i.createtime, i.updatetime, i.ownerid,"
+ " i.sharemode, i.istemplate, i.canlinkdefault, i.candownloaddefault,"
+ " i.caneditdefault, i.canadmindefault,"
- + " cur.expiretime, cur.filesize, cur.isenabled, cur.isrestricted, cur.isvalid,"
+ + " lat.expiretime, lat.filesize, lat.isrestricted, lat.isvalid,"
+ " lat.uploaderid, lat.isprocessed,"
+ " perm.canlink, perm.candownload, perm.canedit, perm.canadmin"
+ " FROM imagebase i"
- + " LEFT JOIN imageversion cur ON (cur.imageversionid = i.currentversionid)"
+ " LEFT JOIN imageversion lat ON (lat.imageversionid = i.latestversionid)"
+ " LEFT JOIN imagepermission perm ON (i.imagebaseid = perm.imagebaseid AND perm.userid = :userid)"
+ " WHERE i.imagebaseid = :imagebaseid");
@@ -169,7 +167,7 @@ public class DbImage {
throws SQLException {
List<ImageVersionDetails> versionList = new ArrayList<>();
MysqlStatement stmt = connection.prepareStatement("SELECT"
- + " imageversionid, createtime, expiretime, filesize, uploaderid, isenabled,"
+ + " imageversionid, createtime, expiretime, filesize, uploaderid,"
+ " isrestricted, isvalid, isprocessed" + " FROM imageversion"
+ " WHERE imagebaseid = :imagebaseid");
stmt.setString("imagebaseid", imageBaseId);
@@ -178,9 +176,9 @@ public class DbImage {
String imageVersionId = rs.getString("imageversionid");
versionList.add(new ImageVersionDetails(imageVersionId, rs.getLong("createtime"),
rs.getLong("expiretime"), rs.getLong("filesize"), rs.getString("uploaderid"),
- rs.getByte("isenabled") != 0, rs.getByte("isrestricted") != 0,
- rs.getByte("isvalid") != 0, rs.getByte("isprocessed") != 0,
- DbSoftwareTag.getImageVersionSoftwareList(connection, imageVersionId)));
+ rs.getByte("isrestricted") != 0, rs.getByte("isvalid") != 0,
+ rs.getByte("isprocessed") != 0, DbSoftwareTag.getImageVersionSoftwareList(connection,
+ imageVersionId)));
}
stmt.close();
return versionList;
@@ -323,10 +321,8 @@ public class DbImage {
throw new TNotFoundException();
// First update version table
MysqlStatement stmtVersion = connection.prepareStatement("UPDATE imageversion v SET"
- + " v.isenabled = :isenabled, v.isrestricted = :isrestricted"
- + " WHERE v.imageversionid = :versionid");
+ + " v.isrestricted = :isrestricted" + " WHERE v.imageversionid = :versionid");
stmtVersion.setString("versionid", imageVersionId);
- stmtVersion.setBoolean("isenabled", image.isEnabled);
stmtVersion.setBoolean("isrestricted", image.isRestricted);
stmtVersion.executeUpdate();
// Then base table
@@ -355,7 +351,7 @@ public class DbImage {
public static void markForDeletion(String imageVersionId) throws SQLException {
try (MysqlConnection connection = Database.getConnection()) {
MysqlStatement stmt = connection.prepareStatement("UPDATE imageversion SET"
- + " expiretime = UNIX_TIMESTAMP() - 1, isenabled = 0, isvalid = 0"
+ + " expiretime = UNIX_TIMESTAMP() - 1, isvalid = 0"
+ " WHERE imageversionid = :versionid");
stmt.setString("versionid", imageVersionId);
stmt.executeUpdate();
@@ -387,10 +383,10 @@ public class DbImage {
final long nowSecs = System.currentTimeMillis() / 1000;
MysqlStatement stmt = connection.prepareStatement("INSERT INTO imageversion"
+ " (imageversionid, imagebaseid, createtime, expiretime, filesize, filepath, uploaderid,"
- + " isenabled, isrestricted, isvalid, isprocessed, mastersha1, virtualizerconfig)"
+ + " isrestricted, isvalid, isprocessed, mastersha1, virtualizerconfig)"
+ " VALUES "
+ " (:imageversionid, :imagebaseid, :createtime, :expiretime, :filesize, :filepath,"
- + " :uploaderid, :isenabled, :isrestricted, :isvalid, :isprocessed, :mastersha1, :virtualizerconfig)");
+ + " :uploaderid, :isrestricted, :isvalid, :isprocessed, :mastersha1, :virtualizerconfig)");
stmt.setString("imageversionid", imageVersionId);
stmt.setString("imagebaseid", imageBaseId);
stmt.setLong("createtime", nowSecs);
@@ -398,7 +394,6 @@ public class DbImage {
stmt.setLong("filesize", fileSize);
stmt.setString("filepath", filePath);
stmt.setString("uploaderid", owner.userId);
- stmt.setBoolean("isenabled", versionSettings == null ? false : versionSettings.isEnabled);
stmt.setBoolean("isrestricted", versionSettings == null ? false : versionSettings.isRestricted);
stmt.setBoolean("isvalid", true); // TODO
stmt.setBoolean("isprocessed", false);