summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodulserver/src/main/java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java12
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java7
2 files changed, 8 insertions, 11 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java
index b712c065..6c252ace 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java
@@ -65,16 +65,12 @@ public class User {
return null; // User locally known, use user-specific permission
return AuthorizationError.ACCOUNT_SUSPENDED;
}
- // User not locally known - refresh organization cache first
- LocalOrganization local = LocalData.getLocalOrganization(user.organizationId);
- if (local == null && OrganizationList.find(user.organizationId) != null) {
- Util.sleep(1000); // Since writing to DB is async.. (yeah I know)
- local = LocalData.getLocalOrganization(user.organizationId);
- }
// User unknown, check per-organization login permission
- if (local == null)
+ LocalOrganization local = LocalData.getLocalOrganization(user.organizationId);
+ if (local == null && OrganizationList.find(user.organizationId) == null)
return AuthorizationError.INVALID_ORGANIZATION;
- if (local.canLogin)
+ // Organization known an allowed to login
+ if (local != null && local.canLogin)
return null;
// Special case: If user is not allowed to login, check if there are no allowed
// organizations yet. If so, automatically allow the organization of this user.
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java
index ddaa729a..02412f08 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java
@@ -156,9 +156,10 @@ public class SessionManager {
throw new TInvocationException();
}
LOGGER.info("Got user " + ui.userId + " for token " + token);
- // TODO XXX HACK: Remove this once master server supplies role
- if (ui.role == null)
- ui.role = Role.TUTOR;
+ if (ui.role == null) {
+ // Fail-safe: No role supplied, assume student
+ ui.role = Role.STUDENT;
+ }
// Valid reply, check if user is allowed to communicate with this satellite server
AuthorizationError authError = User.canLogin(ui);
if (authError != null) {