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