diff options
author | Folker Bernitt <fbernitt@thoughtworks.com> | 2016-01-19 13:36:31 +0100 |
---|---|---|
committer | Folker Bernitt <fbernitt@thoughtworks.com> | 2016-01-22 11:00:22 +0100 |
commit | 995049a04fb15bd4e1cf27bf11e3be46f84e3bfe (patch) | |
tree | 27990273107b573b49f6af83c3a13ee63ae37b50 /service/pixelated/resources/__init__.py | |
parent | 7be15d9231a98f5cd439030ebc16361fb43287e9 (diff) |
Add mutli-user mode to user-agent
- Issue #576
- To start in multi user, run with --multi-user --provider provider-name.tld
Diffstat (limited to 'service/pixelated/resources/__init__.py')
-rw-r--r-- | service/pixelated/resources/__init__.py | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py index 3d81d784..9cde015f 100644 --- a/service/pixelated/resources/__init__.py +++ b/service/pixelated/resources/__init__.py @@ -16,8 +16,12 @@ import json +from twisted.web._responses import UNAUTHORIZED from twisted.web.resource import Resource +# from pixelated.resources.login_resource import LoginResource +from pixelated.resources.session import IPixelatedSession + class SetEncoder(json.JSONEncoder): def default(self, obj): @@ -48,8 +52,19 @@ class BaseResource(Resource): self._services_factory = services_factory def _get_user_id_from_request(self, request): - # currently we are faking this - return self._services_factory._services_by_user.keys()[0] + if self._services_factory.mode.is_single_user: + return None # it doesn't matter + session = self.get_session(request) + if session.is_logged_in(): + return session.user_uuid + raise ValueError('Not logged in') + + def is_logged_in(self, request): + session = self.get_session(request) + return session.is_logged_in() + + def get_session(self, request): + return IPixelatedSession(request.getSession()) def _services(self, request): user_id = self._get_user_id_from_request(request) @@ -72,3 +87,13 @@ class BaseResource(Resource): def feedback_service(self, request): return self._service(request, 'feedback_service') + + +class UnAuthorizedResource(Resource): + + def __init__(self): + Resource.__init__(self) + + def render_GET(self, request): + request.setResponseCode(UNAUTHORIZED) + return "Unauthorized!" |