From d2375b4187727ba6a920b3c8570090774dfc3563 Mon Sep 17 00:00:00 2001 From: mdipierro Date: Sun, 28 Jun 2015 16:41:09 -0500 Subject: [PATCH] always allow access to /appadmin/manage/auth if used is admin --- applications/admin/controllers/appadmin.py | 10 ++++----- applications/examples/controllers/appadmin.py | 22 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/applications/admin/controllers/appadmin.py b/applications/admin/controllers/appadmin.py index 099ebc61..4d208944 100644 --- a/applications/admin/controllers/appadmin.py +++ b/applications/admin/controllers/appadmin.py @@ -49,7 +49,8 @@ if request.function == 'manage': auth.table_group(), auth.table_permission()]) manager_role = manager_action.get('role', None) if manager_action else None - auth.requires_membership(manager_role)(lambda: None)() + if not (gluon.fileutils.check_credentials(request) or auth.has_membership(manager_role)): + raise HTTP(403, "Not authorized") menu = False elif (request.application == 'admin' and not session.authorized) or \ (request.application != 'admin' and not gluon.fileutils.check_credentials(request)): @@ -80,7 +81,6 @@ if False and request.tickets_db: def get_databases(request): dbs = {} for (key, value) in global_env.items(): - cond = False try: cond = isinstance(value, GQLDB) except: @@ -420,7 +420,7 @@ def ccache(): 'oldest': time.time(), 'keys': [] } - + disk = copy.copy(ram) total = copy.copy(ram) disk['keys'] = [] @@ -480,7 +480,7 @@ def ccache(): disk['oldest'] = value[0] disk['keys'].append((key, GetInHMS(time.time() - value[0]))) - ram_keys = ram.keys() + ram_keys = ram.keys() # ['hits', 'objects', 'ratio', 'entries', 'keys', 'oldest', 'bytes', 'misses'] ram_keys.remove('ratio') ram_keys.remove('oldest') for key in ram_keys: @@ -491,7 +491,7 @@ def ccache(): total['misses']) except (KeyError, ZeroDivisionError): total['ratio'] = 0 - + if disk['oldest'] < ram['oldest']: total['oldest'] = disk['oldest'] else: diff --git a/applications/examples/controllers/appadmin.py b/applications/examples/controllers/appadmin.py index 8af1047c..4d208944 100644 --- a/applications/examples/controllers/appadmin.py +++ b/applications/examples/controllers/appadmin.py @@ -49,7 +49,8 @@ if request.function == 'manage': auth.table_group(), auth.table_permission()]) manager_role = manager_action.get('role', None) if manager_action else None - auth.requires_membership(manager_role)(lambda: None)() + if not (gluon.fileutils.check_credentials(request) or auth.has_membership(manager_role)): + raise HTTP(403, "Not authorized") menu = False elif (request.application == 'admin' and not session.authorized) or \ (request.application != 'admin' and not gluon.fileutils.check_credentials(request)): @@ -80,7 +81,6 @@ if False and request.tickets_db: def get_databases(request): dbs = {} for (key, value) in global_env.items(): - cond = False try: cond = isinstance(value, GQLDB) except: @@ -420,7 +420,7 @@ def ccache(): 'oldest': time.time(), 'keys': [] } - + disk = copy.copy(ram) total = copy.copy(ram) disk['keys'] = [] @@ -480,12 +480,12 @@ def ccache(): disk['oldest'] = value[0] disk['keys'].append((key, GetInHMS(time.time() - value[0]))) - total['entries'] = ram['entries'] + disk['entries'] - total['bytes'] = ram['bytes'] + disk['bytes'] - total['objects'] = ram['objects'] + disk['objects'] - total['hits'] = ram['hits'] + disk['hits'] - total['misses'] = ram['misses'] + disk['misses'] - total['keys'] = ram['keys'] + disk['keys'] + ram_keys = ram.keys() # ['hits', 'objects', 'ratio', 'entries', 'keys', 'oldest', 'bytes', 'misses'] + ram_keys.remove('ratio') + ram_keys.remove('oldest') + for key in ram_keys: + total[key] = ram[key] + disk[key] + try: total['ratio'] = total['hits'] * 100 / (total['hits'] + total['misses']) @@ -577,9 +577,7 @@ def bg_graph_model(): group = meta_graphmodel['group'].replace(' ', '') if not subgraphs.has_key(group): subgraphs[group] = dict(meta=meta_graphmodel, tables=[]) - subgraphs[group]['tables'].append(tablename) - else: - subgraphs[group]['tables'].append(tablename) + subgraphs[group]['tables'].append(tablename) graph.add_node(tablename, name=tablename, shape='plaintext', label=table_template(tablename))