diff options
author | Simon Rettberg | 2015-08-13 15:53:24 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-13 15:53:24 +0200 |
commit | 8874c2e551e8001d8ef3b17e7c33b25b3ce337b2 (patch) | |
tree | e543c2132649e3b55689c8816f06ce741721299b /dozentenmodulserver | |
parent | [client] Make sure only applicable fields in image details window are editable (diff) | |
download | tutor-module-8874c2e551e8001d8ef3b17e7c33b25b3ce337b2.tar.gz tutor-module-8874c2e551e8001d8ef3b17e7c33b25b3ce337b2.tar.xz tutor-module-8874c2e551e8001d8ef3b17e7c33b25b3ce337b2.zip |
[server] Set updaterid and updatetime when changing owner of image
Diffstat (limited to 'dozentenmodulserver')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java | 21 | ||||
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java | 2 |
2 files changed, 17 insertions, 6 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 2fa830cf..98191bea 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 @@ -268,12 +268,23 @@ public class DbImage { } } - public static void setImageOwner(String imageBaseId, String newOwnerId) throws SQLException { + public static void setImageOwner(String imageBaseId, String newOwnerId, UserInfo changingUser) + throws SQLException { try (MysqlConnection connection = Database.getConnection()) { - MysqlStatement stmt = connection.prepareStatement("UPDATE imagebase" - + " SET ownerid = :ownerid WHERE imagebaseid = :baseid"); - stmt.setString("ownerid", newOwnerId); - stmt.setString("baseid", imageBaseId); + MysqlStatement stmt; + if (changingUser == null) { + stmt = connection.prepareStatement("UPDATE imagebase" + + " SET ownerid = :ownerid WHERE imagebaseid = :baseid"); + stmt.setString("ownerid", newOwnerId); + stmt.setString("baseid", imageBaseId); + } else { + stmt = connection.prepareStatement("UPDATE imagebase" + + " SET ownerid = :ownerid, updaterid = :updaterid, updatetime = UNIX_TIMESTAMP()" + + " WHERE imagebaseid = :baseid"); + stmt.setString("ownerid", newOwnerId); + stmt.setString("updaterid", changingUser.userId); + stmt.setString("baseid", imageBaseId); + } stmt.executeUpdate(); connection.commit(); } catch (SQLException e) { diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java index e853fafa..7ce167e0 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java @@ -343,7 +343,7 @@ public class ServerHandler implements SatelliteServer.Iface { throw new TAuthorizationException(AuthorizationError.NO_PERMISSION, "Cannot change owner of image that gets downloaded from master server"); } - DbImage.setImageOwner(imageBaseId, newOwnerId); + DbImage.setImageOwner(imageBaseId, newOwnerId, user); } catch (SQLException e) { throw new TInternalServerError(); } |