summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-04-09 12:21:05 +0200
committerSimon Rettberg2019-04-09 12:21:05 +0200
commit4e12419dda69d9b4f7ef48e7fce0ddd9b2bdd3cd (patch)
treeb27164b8125f111c8e691dc79d72650765ff3a2d
parent[server] Prevent division by zero (diff)
downloadtutor-module-4e12419dda69d9b4f7ef48e7fce0ddd9b2bdd3cd.tar.gz
tutor-module-4e12419dda69d9b4f7ef48e7fce0ddd9b2bdd3cd.tar.xz
tutor-module-4e12419dda69d9b4f7ef48e7fce0ddd9b2bdd3cd.zip
[server] Add admin permissions for replicated VMs
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImagePermissions.java6
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java3
2 files changed, 9 insertions, 0 deletions
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<String, ImagePermissions> 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");