diff options
author | Simon Rettberg | 2015-06-23 19:10:48 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-06-23 19:10:48 +0200 |
commit | 8ad025dd99468f71d2fa5c49e0bcf359b055ec97 (patch) | |
tree | 6208ff7d598116e36b21882e5a018a99d2506103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java | |
parent | fix bwLehrpool logo not beeing read from the resources (diff) | |
download | tutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.tar.gz tutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.tar.xz tutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.zip |
[server] More methods implemented
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 | 78 |
1 files changed, 56 insertions, 22 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 7e743e14..d4440793 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,6 +6,7 @@ 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; @@ -16,7 +17,9 @@ import org.openslx.bwlp.sat.permissions.User.Permission; import org.openslx.bwlp.sat.thrift.cache.OperatingSystemList; import org.openslx.bwlp.sat.thrift.cache.OrganizationList; import org.openslx.bwlp.sat.thrift.cache.VirtualizerList; +import org.openslx.bwlp.sat.util.Util; import org.openslx.bwlp.thrift.iface.ImageBaseWrite; +import org.openslx.bwlp.thrift.iface.ImageDataError; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.bwlp.thrift.iface.ImagePermissions; import org.openslx.bwlp.thrift.iface.ImageSummaryRead; @@ -29,6 +32,7 @@ import org.openslx.bwlp.thrift.iface.OperatingSystem; import org.openslx.bwlp.thrift.iface.Organization; import org.openslx.bwlp.thrift.iface.SatelliteServer; import org.openslx.bwlp.thrift.iface.TAuthorizationException; +import org.openslx.bwlp.thrift.iface.TImageDataException; import org.openslx.bwlp.thrift.iface.TInternalServerError; import org.openslx.bwlp.thrift.iface.TInvalidTokenException; import org.openslx.bwlp.thrift.iface.TNotFoundException; @@ -148,48 +152,62 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override - public boolean createImage(String userToken, String imageName) throws TAuthorizationException { + public String createImage(String userToken, String imageName) throws TAuthorizationException, + TImageDataException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); User.canCreateImageOrFail(user); - // TODO: Create image - return true; + if (!Util.isPrintable(imageName) || Util.isEmptyString(imageName)) + throw new TImageDataException(ImageDataError.INVALID_DATA, "Invalid or empty name"); + try { + return DbImage.createImage(user, imageName); + } catch (SQLException e) { + throw new TInternalServerError(); + } } @Override - public boolean updateImageBase(String userToken, String imageBaseId, ImageBaseWrite image) - throws TAuthorizationException, TInternalServerError, TNotFoundException { + public void updateImageBase(String userToken, String imageBaseId, ImageBaseWrite image) + throws TAuthorizationException, TInternalServerError, TNotFoundException, TImageDataException { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.EDIT); - // TODO: Permissions cleared; Now update image base data - return false; + if (!Util.isPrintable(image.imageName) || Util.isEmptyString(image.imageName)) + throw new TImageDataException(ImageDataError.INVALID_DATA, "Invalid or empty name"); + // TODO: Should other fields be validated? Most fields should be protected by fk constraints, + // but the user would only get a generic error, with no hint at the actual problem. + try { + DbImage.updateImageMetadata(user, imageBaseId, image); + } catch (SQLException e) { + throw new TInternalServerError(); + } } @Override - public boolean updateImageVersion(String userToken, String imageVersionId, ImageVersionWrite image) + public void updateImageVersion(String userToken, String imageVersionId, ImageVersionWrite image) throws TAuthorizationException, TInternalServerError, TNotFoundException { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageVersionPermissionOrFail(user, imageVersionId, Permission.EDIT); - // TODO: Permissions cleared; Now update image version data - return false; + try { + DbImage.updateImageVersion(user, imageVersionId, image); + } catch (SQLException e) { + throw new TInternalServerError(); + } } @Override - public boolean deleteImageVersion(String userToken, String imageVersionId) - throws TAuthorizationException, TNotFoundException, TInternalServerError { + public void deleteImageVersion(String userToken, String imageVersionId) 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...) - return false; } @Override - public boolean writeImagePermissions(String userToken, String imageBaseId, + public void writeImagePermissions(String userToken, String imageBaseId, Map<String, ImagePermissions> permissions) throws TAuthorizationException, TNotFoundException, TInternalServerError { UserInfo user = SessionManager.getOrFail(userToken); User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.ADMIN); - // TODO: Permissions cleared; Now update image base data - return false; + // TODO: Permissions cleared; Now write image permissions } @Override @@ -205,16 +223,27 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override + public void setImageOwner(String userToken, String imageBaseId, String newOwnerId) + throws TAuthorizationException, TNotFoundException, TInternalServerError, TException { + UserInfo user = SessionManager.getOrFail(userToken); + User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.ADMIN); + try { + DbImage.setImageOwner(imageBaseId, newOwnerId); + } catch (SQLException e) { + throw new TInternalServerError(); + } + } + + @Override 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) + public void updateLecture(String userToken, String lectureId, LectureWrite lecture) throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub - return false; } @Override @@ -238,17 +267,15 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override - public boolean deleteLecture(String userToken, String lectureId) throws TAuthorizationException, + public void deleteLecture(String userToken, String lectureId) throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub - return false; } @Override - public boolean writeLecturePermissions(String userToken, String lectureId, + public void writeLecturePermissions(String userToken, String lectureId, Map<String, LecturePermissions> permissions) throws TAuthorizationException, TNotFoundException { // TODO Auto-generated method stub - return false; } @Override @@ -259,6 +286,13 @@ public class ServerHandler implements SatelliteServer.Iface { } @Override + public void setLectureOwner(String userToken, String lectureId, String newOwnerId) + throws TAuthorizationException, TNotFoundException, TInternalServerError, TException { + // TODO Auto-generated method stub + + } + + @Override public List<UserInfo> getUserList(String userToken, int page) throws TAuthorizationException, TInternalServerError { try { |