summaryrefslogtreecommitdiff
path: root/muck
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-11-16 21:36:04 +0200
committerLars Wirzenius <liw@liw.fi>2018-11-16 21:36:04 +0200
commit6d621d3a51ba68f0a436d5c5b27ace6cb2825f50 (patch)
tree6817d537d5475ccd3b8d888e20cdc51bd357f33e /muck
parentd30c7d5dac5891ad86a3491e198cb384e466932e (diff)
downloadmuck-poc-6d621d3a51ba68f0a436d5c5b27ace6cb2825f50.tar.gz
Change: allow super users to impersonate other users
Diffstat (limited to 'muck')
-rw-r--r--muck/request.py6
-rw-r--r--muck/request_tests.py11
2 files changed, 17 insertions, 0 deletions
diff --git a/muck/request.py b/muck/request.py
index f6e406e..66795ff 100644
--- a/muck/request.py
+++ b/muck/request.py
@@ -28,3 +28,9 @@ class Request:
def get_authorization(self):
return self._headers.get('Authorization')
+
+ def get_user(self):
+ user = self._headers.get('Muck-User')
+ if user:
+ user = user.strip()
+ return user
diff --git a/muck/request_tests.py b/muck/request_tests.py
index 7de2393..eb6d0c4 100644
--- a/muck/request_tests.py
+++ b/muck/request_tests.py
@@ -34,3 +34,14 @@ class RequestTests(unittest.TestCase):
'Authorization': 'Bearer XXX',
})
self.assertEqual(r.get_authorization(), 'Bearer XXX')
+
+ def test_does_not_specify_user_by_default(self):
+ r = muck.Request(method='GET')
+ self.assertEqual(r.get_user(), None)
+
+ def test_specifies_user_in_header(self):
+ r = muck.Request(method='GET')
+ r.add_headers({
+ 'Muck-User': 'tomjon',
+ })
+ self.assertEqual(r.get_user(), 'tomjon')