diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java')
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/permissions/User.java | 12 | ||||
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/SessionManager.java | 7 |
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) { |
