From 4e12419dda69d9b4f7ef48e7fce0ddd9b2bdd3cd Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Tue, 9 Apr 2019 12:21:05 +0200 Subject: [server] Add admin permissions for replicated VMs --- .../org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java | 6 ++++++ .../src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java | 3 +++ 2 files changed, 9 insertions(+) diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java index dcb0beb2..76a8ad3f 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java @@ -130,4 +130,10 @@ public class DbImagePermissions { } } + public static void writeForImageBase(String imageBaseId, String userId, ImagePermissions imagePermissions) throws SQLException { + Map map = new HashMap<>(); + map.put(userId, imagePermissions); + writeForImageBase(imageBaseId, map); + } + } 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 36bbea46..e45fe2c8 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 @@ -347,6 +347,7 @@ public class ServerHandler implements SatelliteServer.Iface { DbImage.setShareMode(imageBaseId, newData); return; } + // (Unreachable) } else { // Likewise, if share mode is local or publish, don't allow changing to FROZEN/DOWNLOAD if (newData.shareMode != ShareMode.LOCAL && newData.shareMode != ShareMode.PUBLISH) { @@ -556,6 +557,8 @@ public class ServerHandler implements SatelliteServer.Iface { } DbUser.writeUserOnReplication(imagePublishData.owner); DbImage.writeBaseImage(imagePublishData); + DbImagePermissions.writeForImageBase(imagePublishData.imageBaseId, user.userId, + new ImagePermissions(true, true, true, true)); } catch (SQLException e) { throw new TInvocationException(InvocationError.INTERNAL_SERVER_ERROR, "Could not write to local DB"); -- cgit v1.2.3-55-g7522