diff options
author | Roald de Vries <rdevries@thoughtworks.com> | 2016-11-29 10:16:38 +0100 |
---|---|---|
committer | Roald de Vries <rdevries@thoughtworks.com> | 2016-11-29 11:09:19 +0100 |
commit | b50db20c0a6603a3ea5f0b704baee1983fc34c1d (patch) | |
tree | 66c6f5de6216bdebb44b6c081caae7bf7782e5ca /service/pixelated/resources/auth.py | |
parent | 77cc41204e3cd8144187ad8cf50fffb3d00080f1 (diff) |
return resource instead of username/avatarId as avatar
Diffstat (limited to 'service/pixelated/resources/auth.py')
-rw-r--r-- | service/pixelated/resources/auth.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/service/pixelated/resources/auth.py b/service/pixelated/resources/auth.py index 833c0f9d..a2054f18 100644 --- a/service/pixelated/resources/auth.py +++ b/service/pixelated/resources/auth.py @@ -64,10 +64,18 @@ class SessionChecker(object): class PixelatedRealm(object): implements(portal.IRealm) + def __init__(self, authenticated_resource, public_resource): + self._authenticated_resource = authenticated_resource + self._public_resource = public_resource + def requestAvatar(self, avatarId, mind, *interfaces): - if IResource in interfaces: - return IResource, avatarId, lambda: None - raise NotImplementedError() + if IResource not in interfaces: + raise NotImplementedError() + if avatarId == checkers.ANONYMOUS: + avatar = self._public_resource + else: + avatar = self._authenticated_resource + return IResource, avatar, lambda: None @implementer(IResource) @@ -93,23 +101,18 @@ class PixelatedAuthSessionWrapper(object): return util.DeferredResource(self._login(creds, request)) def _login(self, credentials, request): - pattern = re.compile("^/sandbox/") - def loginSucceeded(args): interface, avatar, logout = args - if avatar == checkers.ANONYMOUS and not pattern.match(request.path): - return self._anonymous_resource - else: - return self._root_resource + # TODO: make sandbox public + return avatar def loginFailed(result): if result.check(error.Unauthorized, error.LoginFailed): return UnauthorizedResource(self._credentialFactories) else: - log.err( - result, + log.error( "PixelatedAuthSessionWrapper.getChildWithDefault encountered " - "unexpected error") + "unexpected error: %s" % result) return ErrorPage(500, None, None) d = self._portal.login(credentials, None, IResource) |