From 152f3f269aef562061f282857bab2798dc3e1e2c Mon Sep 17 00:00:00 2001
From: Lars Wirzenius
Date: Tue, 20 Nov 2018 10:57:17 +0200
Subject: Add: show users info (ugly)
---
effireg | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 58 insertions(+), 3 deletions(-)
(limited to 'effireg')
diff --git a/effireg b/effireg
index ef12535..c9e9528 100755
--- a/effireg
+++ b/effireg
@@ -105,10 +105,65 @@ class EffiAPI:
Log in
'''
def _logged_in_page(self, cookie):
+ session = self._sessions.find_by_cookie(cookie)
+ if not session:
+ return self._not_logged_in_page()
+
+ members = self._get_members(session.token)
return '''
- You ARE logged in. Cookie is {}
- Log out
- '''.format(cookie)
+ You ARE logged in. Cookie is {}.
+ Token is
{}
+ Log out
+ Members:
{}
+ '''.format(cookie, session.token, json.dumps(members, indent=4))
+
+ def _get_members(self, token):
+ rids = self._find_ids_of_resources_owned_by_user(token)
+ return self._get_resources(token, rids)
+
+ def _find_ids_of_resources_owned_by_user(self, token):
+ url = '{}/search'.format(self._apiurl)
+ cond = {
+ 'cond': [
+ {
+ 'op': '>=',
+ 'where': 'meta',
+ 'field': 'id',
+ 'pattern': '',
+ },
+ ]
+ }
+ headers = {
+ 'Content-Type': 'application/json',
+ 'Authorization': 'Bearer {}'.format(token),
+ }
+
+ logging.debug('Finding owned by user: url=%s headers=%r', url, headers)
+ r = requests.get(url, headers=headers, data=json.dumps(cond))
+ if not r.ok:
+ logging.error('{} {}'.format(r.status_code, r.text))
+ return []
+ obj = r.json()
+ return obj['resources']
+
+ def _get_resources(self, token, rids):
+ return [
+ self._get_resource(token, rid)
+ for rid in rids
+ ]
+
+ def _get_resource(self, token, rid):
+ logging.info('Retrieving resource %s', rid)
+ url = '{}/mem'.format(self._apiurl)
+ headers = {
+ 'Muck-Id': rid,
+ 'Authorization': 'Bearer {}'.format(token),
+ }
+ r = requests.get(url, headers=headers)
+ if not r.ok:
+ logging.error('{} {}'.format(r.status_code, r.text))
+ return {}
+ return r.json()
def _redirect_to_frontpage(self):
headers = {
--
cgit v1.2.1