diff options
author | Simon Rettberg | 2015-06-19 18:07:41 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-06-19 18:07:41 +0200 |
commit | 3fba1e1e9d046598683a790074ee183c0f1176e6 (patch) | |
tree | 073b1df936d4252e0bdefd7bd085f43ffe32fbad /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java | |
parent | [server] Implemented getUsers call, more permission checking methods (diff) | |
download | tutor-module-3fba1e1e9d046598683a790074ee183c0f1176e6.tar.gz tutor-module-3fba1e1e9d046598683a790074ee183c0f1176e6.tar.xz tutor-module-3fba1e1e9d046598683a790074ee183c0f1176e6.zip |
Add flag to lecture that decides whether the lecture will automatically link to a new image version when one is uploaded; implement some more functionality
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 | 92 |
1 files changed, 59 insertions, 33 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 40155972..7e743e14 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 @@ -6,8 +6,8 @@ import java.util.List; import java.util.Map; import org.apache.log4j.Logger; -import org.apache.thrift.TException; import org.openslx.bwlp.sat.database.mappers.DbImage; +import org.openslx.bwlp.sat.database.mappers.DbImagePermissions; import org.openslx.bwlp.sat.database.mappers.DbUser; import org.openslx.bwlp.sat.fileserv.ActiveUpload; import org.openslx.bwlp.sat.fileserv.FileServer; @@ -46,20 +46,23 @@ public class ServerHandler implements SatelliteServer.Iface { private static final FileServer fileServer = FileServer.instance(); @Override - public long getVersion() throws TException { + public long getVersion() { return Version.VERSION; } + /* + * File Transfer + */ + @Override public TransferInformation requestImageVersionUpload(String userToken, String imageBaseId, long fileSize, - List<ByteBuffer> blockHashes) throws TTransferRejectedException, TAuthorizationException, - TException { + List<ByteBuffer> blockHashes) throws TTransferRejectedException, TAuthorizationException { // TODO Auto-generated method stub return null; } @Override - public void cancelUpload(String uploadToken) throws TException { + public void cancelUpload(String uploadToken) { ActiveUpload upload = fileServer.getUploadByToken(uploadToken); if (upload != null) upload.cancel(); @@ -67,52 +70,64 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override - public UploadStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException, TException { + public UploadStatus queryUploadStatus(String uploadToken) throws TInvalidTokenException { // TODO Auto-generated method stub return null; } @Override public TransferInformation requestDownload(String userToken, String imageVersionId) - throws TAuthorizationException, TException { + throws TAuthorizationException { // TODO Auto-generated method stub return null; } @Override - public void cancelDownload(String downloadToken) throws TException { + public void cancelDownload(String downloadToken) { // TODO Auto-generated method stub } + /* + * Authentication/Validation + */ + @Override - public boolean isAuthenticated(String userToken) throws TException { + public boolean isAuthenticated(String userToken) { return SessionManager.get(userToken) != null; } @Override - public void invalidateSession(String userToken) throws TException { + public void invalidateSession(String userToken) { SessionManager.remove(userToken); } + /* + * Query basic information which doesn't require authentication + */ + @Override - public List<OperatingSystem> getOperatingSystems() throws TException { + public List<OperatingSystem> getOperatingSystems() { return OperatingSystemList.get(); } @Override - public List<Virtualizer> getVirtualizers() throws TException { + public List<Virtualizer> getVirtualizers() { return VirtualizerList.get(); } @Override - public List<Organization> getAllOrganizations() throws TException { + public List<Organization> getAllOrganizations() { return OrganizationList.get(); } + /* + * Everything below required at least a valid session + */ + @Override public List<ImageSummaryRead> getImageList(String userToken, List<String> tagSearch) - throws TAuthorizationException, TException { + throws TAuthorizationException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); try { return DbImage.getAllVisible(user, tagSearch); @@ -123,7 +138,7 @@ public class ServerHandler implements SatelliteServer.Iface { @Override public ImageDetailsRead getImageDetails(String userToken, String imageBaseId) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); try { return DbImage.getImageDetails(user, imageBaseId); @@ -133,8 +148,16 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override + public boolean createImage(String userToken, String imageName) throws TAuthorizationException { + UserInfo user = SessionManager.getOrFail(userToken); + User.canCreateImageOrFail(user); + // TODO: Create image + return true; + } + + @Override public boolean updateImageBase(String userToken, String imageBaseId, ImageBaseWrite image) - throws TAuthorizationException, TException { + throws TAuthorizationException, TInternalServerError, TNotFoundException { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.EDIT); // TODO: Permissions cleared; Now update image base data @@ -143,7 +166,7 @@ public class ServerHandler implements SatelliteServer.Iface { @Override public boolean updateImageVersion(String userToken, String imageVersionId, ImageVersionWrite image) - throws TAuthorizationException, TException { + throws TAuthorizationException, TInternalServerError, TNotFoundException { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageVersionPermissionOrFail(user, imageVersionId, Permission.EDIT); // TODO: Permissions cleared; Now update image version data @@ -152,7 +175,7 @@ public class ServerHandler implements SatelliteServer.Iface { @Override public boolean deleteImageVersion(String userToken, String imageVersionId) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageVersionPermissionOrFail(user, imageVersionId, Permission.ADMIN); // TODO: Permissions cleared; Now mark image for deletion (set expire time in the past...) @@ -162,7 +185,7 @@ public class ServerHandler implements SatelliteServer.Iface { @Override public boolean writeImagePermissions(String userToken, String imageBaseId, Map<String, ImagePermissions> permissions) throws TAuthorizationException, TNotFoundException, - TException { + TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.ADMIN); // TODO: Permissions cleared; Now update image base data @@ -171,70 +194,73 @@ public class ServerHandler implements SatelliteServer.Iface { @Override public Map<String, ImagePermissions> getImagePermissions(String userToken, String imageBaseId) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); - // TODO Auto-generated method stub - return null; + boolean adminOnly = !User.hasImageBasePermission(user, imageBaseId, Permission.ADMIN); + try { + return DbImagePermissions.getForImageBase(imageBaseId, adminOnly); + } catch (SQLException e) { + throw new TInternalServerError(); + } } @Override - public String createLecture(String userToken, LectureWrite lecture) throws TAuthorizationException, - TException { + public String createLecture(String userToken, LectureWrite lecture) throws TAuthorizationException { // TODO Auto-generated method stub return null; } @Override public boolean updateLecture(String userToken, String lectureId, LectureWrite lecture) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub return false; } @Override - public List<LectureSummary> getLectureList(String userToken) throws TAuthorizationException, TException { + public List<LectureSummary> getLectureList(String userToken) throws TAuthorizationException { // TODO Auto-generated method stub return null; } @Override public LectureRead getLectureDetails(String userToken, String lectureId) throws TAuthorizationException, - TNotFoundException, TException { + TNotFoundException { // TODO Auto-generated method stub return null; } @Override public List<LectureSummary> getLecturesByImageVersion(String userToken, String imageVersionId) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub return null; } @Override public boolean deleteLecture(String userToken, String lectureId) throws TAuthorizationException, - TNotFoundException, TException { + TNotFoundException { // TODO Auto-generated method stub return false; } @Override public boolean writeLecturePermissions(String userToken, String lectureId, - Map<String, LecturePermissions> permissions) throws TAuthorizationException, TNotFoundException, - TException { + Map<String, LecturePermissions> permissions) throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub return false; } @Override public Map<String, LecturePermissions> getLecturePermissions(String userToken, String lectureId) - throws TAuthorizationException, TNotFoundException, TException { + throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub return null; } @Override - public List<UserInfo> getUserList(String userToken, int page) throws TAuthorizationException, TException { + public List<UserInfo> getUserList(String userToken, int page) throws TAuthorizationException, + TInternalServerError { try { return DbUser.getAll(page); } catch (SQLException e) { |