summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java53
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java2
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java21
5 files changed, 65 insertions, 15 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java
index 380b51ea..d9795ace 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ImageCache.java
@@ -18,7 +18,7 @@ public class ImageCache {
@Override
protected List<ImageSummaryRead> update() throws TAuthorizationException, TInternalServerError, TException {
List<ImageSummaryRead> result = null;
- int pageSize = ThriftManager.getSatClient().getPageSize();
+ int pageSize = Session.getSatelliteConfig().pageSize;
for (int i = 0;; ++i) {
List<ImageSummaryRead> page = ThriftManager.getSatClient().getImageList(Session.getSatelliteToken(), null, i);
if (result == null) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java
index eb80b61e..bbed5adc 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/LectureCache.java
@@ -18,7 +18,7 @@ public class LectureCache {
@Override
protected List<LectureSummary> update() throws TAuthorizationException, TInternalServerError, TException {
List<LectureSummary> result = null;
- int pageSize = ThriftManager.getSatClient().getPageSize();
+ int pageSize = Session.getSatelliteConfig().pageSize;
for (int i = 0;; ++i) {
List<LectureSummary> page = ThriftManager.getSatClient().getLectureList(Session.getSatelliteToken(), i);
if (result == null) {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java
index 36c6f617..c1c52fcb 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/Session.java
@@ -1,7 +1,11 @@
package org.openslx.dozmod.thrift;
+import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.bwlp.thrift.iface.ClientSessionData;
+import org.openslx.bwlp.thrift.iface.ImagePermissions;
+import org.openslx.bwlp.thrift.iface.LecturePermissions;
+import org.openslx.bwlp.thrift.iface.SatelliteConfig;
import org.openslx.bwlp.thrift.iface.SessionData;
import org.openslx.bwlp.thrift.iface.TInvalidTokenException;
import org.openslx.bwlp.thrift.iface.UserInfo;
@@ -10,23 +14,25 @@ import org.openslx.dozmod.authentication.ServiceProviderResponse;
import org.openslx.thrifthelper.ThriftManager;
public class Session {
-
+
+ private static final Logger LOGGER = Logger.getLogger(Session.class);
+
private static String firstName = null;
-
+
private static String lastName = null;
-
+
private static String eMail = null;
-
+
private static String userId = null;
-
+
private static String organizationId = null;
private static String satelliteToken = null;
-
+
private static String masterToken = null;
private static String satelliteAddress = null;
-
+
public static void fromClientSessionData(ClientSessionData session) {
if (userId != null && !userId.equals(session.userInfo.userId))
throw new IllegalArgumentException("Cannot set new session data with different user id!");
@@ -50,7 +56,7 @@ public class Session {
masterToken = session.sessionId;
satelliteToken = session.authToken;
}
-
+
public static void fromEcpLogin(ServiceProviderResponse response) {
if (userId != null && !userId.equals(response.userId))
throw new IllegalArgumentException("Cannot set new session data with different user id!");
@@ -62,12 +68,12 @@ public class Session {
masterToken = response.sessionId;
satelliteToken = response.token;
}
-
+
public static void fromSavedSession(SavedSession session) {
satelliteToken = session.token;
// TODO: Satellite whoami call
}
-
+
/**
* @return the first name
*/
@@ -131,4 +137,31 @@ public class Session {
Session.satelliteAddress = satelliteAddress;
}
+ private static SatelliteConfig satConf = null;
+
+ /**
+ * Query the satellite server for its configuration and default values.
+ *
+ * @return
+ */
+ public static SatelliteConfig getSatelliteConfig() {
+ synchronized (SatelliteConfig.class) {
+ if (satConf != null)
+ return satConf;
+ try {
+ satConf = ThriftManager.getSatClient().getConfiguration();
+ return satConf;
+ } catch (TException e) {
+ LOGGER.warn("Could not get satellite configuration, falling back to builtin defaults", e);
+ SatelliteConfig satConfig = new SatelliteConfig();
+ satConfig.setDefaultImagePermissions(new ImagePermissions(true, true, false, false));
+ satConfig.setDefaultLecturePermissions(new LecturePermissions(false, false));
+ satConfig.setMaxImageValidityDays(200);
+ satConfig.setMaxLectureValidityDays(100);
+ satConfig.setPageSize(200);
+ return satConfig;
+ }
+ }
+ }
+
}
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java
index 50c02f08..949d01c1 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/UserCache.java
@@ -22,7 +22,7 @@ public class UserCache {
@Override
protected List<UserInfo> update() throws Exception {
List<UserInfo> result = null;
- int pageSize = ThriftManager.getSatClient().getPageSize();
+ int pageSize = Session.getSatelliteConfig().pageSize;
for (int i = 0;; ++i) {
List<UserInfo> page = ThriftManager.getSatClient()
.getUserList(Session.getSatelliteToken(), i);
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 b835ded9..20df580d 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
@@ -32,6 +32,7 @@ import org.openslx.bwlp.thrift.iface.LectureSummary;
import org.openslx.bwlp.thrift.iface.LectureWrite;
import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Organization;
+import org.openslx.bwlp.thrift.iface.SatelliteConfig;
import org.openslx.bwlp.thrift.iface.SatelliteServer;
import org.openslx.bwlp.thrift.iface.ShareMode;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
@@ -52,14 +53,25 @@ public class ServerHandler implements SatelliteServer.Iface {
private static final FileServer fileServer = FileServer.instance();
+ private static final SatelliteConfig satConfig;
+
+ static {
+ satConfig = new SatelliteConfig();
+ satConfig.setDefaultImagePermissions(new ImagePermissions(true, true, false, false));
+ satConfig.setDefaultLecturePermissions(new LecturePermissions(false, false));
+ satConfig.setMaxImageValidityDays(200);
+ satConfig.setMaxLectureValidityDays(100);
+ satConfig.setPageSize(Paginator.PER_PAGE);
+ }
+
@Override
public long getVersion() {
return Version.VERSION;
}
@Override
- public int getPageSize() throws TException {
- return Paginator.PER_PAGE;
+ public SatelliteConfig getConfiguration() {
+ return satConfig;
}
/*
@@ -133,6 +145,11 @@ public class ServerHandler implements SatelliteServer.Iface {
}
@Override
+ public UserInfo whoami(String userToken) throws TAuthorizationException {
+ return SessionManager.getOrFail(userToken);
+ }
+
+ @Override
public void invalidateSession(String userToken) {
SessionManager.remove(userToken);
}