summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/auth.py
diff options
context:
space:
mode:
authorRoald de Vries <rdevries@thoughtworks.com>2016-11-29 10:16:38 +0100
committerRoald de Vries <rdevries@thoughtworks.com>2016-11-29 11:09:19 +0100
commitb50db20c0a6603a3ea5f0b704baee1983fc34c1d (patch)
tree66c6f5de6216bdebb44b6c081caae7bf7782e5ca /service/pixelated/resources/auth.py
parent77cc41204e3cd8144187ad8cf50fffb3d00080f1 (diff)
return resource instead of username/avatarId as avatar
Diffstat (limited to 'service/pixelated/resources/auth.py')
-rw-r--r--service/pixelated/resources/auth.py27
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)