diff options
author | Lars Wirzenius <liw@liw.fi> | 2018-11-20 10:57:17 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2018-11-20 10:57:17 +0200 |
commit | 152f3f269aef562061f282857bab2798dc3e1e2c (patch) | |
tree | c05f69c9a7e93f055dd666840d64fd1294d2fbd3 /effireg | |
parent | 64c3b3c54843b78f217aec79259b406637fc8ea5 (diff) | |
download | effi-reg-152f3f269aef562061f282857bab2798dc3e1e2c.tar.gz |
Add: show users info (ugly)
Diffstat (limited to 'effireg')
-rwxr-xr-x | effireg | 61 |
1 files changed, 58 insertions, 3 deletions
@@ -105,10 +105,65 @@ class EffiAPI: <a href="/login">Log in</a></p> ''' 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 ''' - <p>You ARE logged in. Cookie is {} - <a href="/logout">Log out</a></p> - '''.format(cookie) + <p>You ARE logged in. Cookie is {}.</p> + <p>Token is <br/><code>{}</code></p> + <p><a href="/logout">Log out</a></p> + <p>Members: <br/>{}</p> + '''.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 = { |