diff options
author | Simon Rettberg | 2015-08-10 18:34:03 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-08-10 18:34:03 +0200 |
commit | d7f38f8df8e9f049233ef5878eca8ca416bc210e (patch) | |
tree | 286333d2dac603a4f4e88988aed23e8fe751ec93 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java | |
parent | [client] improved an error message (diff) | |
download | tutor-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.java | 15 |
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 |