summaryrefslogtreecommitdiff
path: root/effireg
diff options
context:
space:
mode:
Diffstat (limited to 'effireg')
-rwxr-xr-xeffireg61
1 files changed, 58 insertions, 3 deletions
diff --git a/effireg b/effireg
index ef12535..c9e9528 100755
--- a/effireg
+++ b/effireg
@@ -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 = {