summaryrefslogtreecommitdiff
path: root/service/pixelated/resources/__init__.py
diff options
context:
space:
mode:
authorFolker Bernitt <fbernitt@thoughtworks.com>2016-01-19 13:36:31 +0100
committerFolker Bernitt <fbernitt@thoughtworks.com>2016-01-22 11:00:22 +0100
commit995049a04fb15bd4e1cf27bf11e3be46f84e3bfe (patch)
tree27990273107b573b49f6af83c3a13ee63ae37b50 /service/pixelated/resources/__init__.py
parent7be15d9231a98f5cd439030ebc16361fb43287e9 (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__.py29
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!"