diff options
Diffstat (limited to 'dozentenmodulserver/src')
-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(); } |