summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-06-19 18:07:41 +0200
committerSimon Rettberg2015-06-19 18:07:41 +0200
commit3fba1e1e9d046598683a790074ee183c0f1176e6 (patch)
tree073b1df936d4252e0bdefd7bd085f43ffe32fbad /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
parent[server] Implemented getUsers call, more permission checking methods (diff)
downloadtutor-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.java92
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) {