summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-10 18:34:03 +0200
committerSimon Rettberg2015-08-10 18:34:03 +0200
commitd7f38f8df8e9f049233ef5878eca8ca416bc210e (patch)
tree286333d2dac603a4f4e88988aed23e8fe751ec93 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
parent[client] improved an error message (diff)
downloadtutor-module-d7f38f8df8e9f049233ef5878eca8ca416bc210e.tar.gz
tutor-module-d7f38f8df8e9f049233ef5878eca8ca416bc210e.tar.xz
tutor-module-d7f38f8df8e9f049233ef5878eca8ca416bc210e.zip
[server] Overhaul permission checking, precalc user permissions, implement download
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java15
1 files changed, 12 insertions, 3 deletions
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 20df580d..4392a249 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
@@ -12,6 +12,7 @@ import org.openslx.bwlp.sat.database.mappers.DbImage;
import org.openslx.bwlp.sat.database.mappers.DbImagePermissions;
import org.openslx.bwlp.sat.database.mappers.DbLecture;
import org.openslx.bwlp.sat.database.mappers.DbUser;
+import org.openslx.bwlp.sat.fileserv.ActiveDownload;
import org.openslx.bwlp.sat.fileserv.ActiveUpload;
import org.openslx.bwlp.sat.fileserv.FileServer;
import org.openslx.bwlp.sat.permissions.User;
@@ -124,9 +125,17 @@ public class ServerHandler implements SatelliteServer.Iface {
@Override
public TransferInformation requestDownload(String userToken, String imageVersionId)
- throws TAuthorizationException {
- // TODO Auto-generated method stub
- return null;
+ throws TAuthorizationException, TInternalServerError, TNotFoundException,
+ TTransferRejectedException {
+ UserInfo user = SessionManager.getOrFail(userToken);
+ User.canDownloadImageVersionOrFail(user, imageVersionId);
+ ActiveDownload transfer;
+ try {
+ transfer = fileServer.createNewUserDownload(DbImage.getLocalImageData(imageVersionId));
+ } catch (SQLException e) {
+ throw new TInternalServerError();
+ }
+ return new TransferInformation(transfer.getId(), fileServer.getPlainPort(), fileServer.getSslPort());
}
@Override