user_perms not hard coded
This commit is contained in:
parent
83ba097d6e
commit
0cad501405
|
@ -35,7 +35,7 @@ async def index(request):
|
|||
request['session']['id'])
|
||||
if request['session']['admin']:
|
||||
apps = await conn.fetch(
|
||||
"SELECT name FROM app_info")
|
||||
"SELECT id, name FROM app_info")
|
||||
user_perms = await conn.fetch(
|
||||
"SELECT user_info.id, user_info.username, app_user.app_id "
|
||||
"FROM user_info LEFT JOIN app_user "
|
||||
|
@ -49,10 +49,11 @@ async def index(request):
|
|||
request['session']['id'])
|
||||
|
||||
if request['session']['admin']:
|
||||
apps = [app['name'] for app in apps]
|
||||
users = defaultdict(lambda: [False]*len(apps))
|
||||
for user_perm in user_perms:
|
||||
users[user_perm['username']][user_perm['app_id']-1] = True
|
||||
index = tools.find_dict(apps, 'id', user_perm['app_id'])
|
||||
if index != -1:
|
||||
users[user_perm['username']][index] = True
|
||||
users_json = json.dumps(users)
|
||||
return render_template("index.html", request, locals())
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<tr>
|
||||
<th>User</th>
|
||||
{% for app in apps %}
|
||||
<th>{{ app }}</th>
|
||||
<th>{{ app['name'] }}</th>
|
||||
{% endfor %}
|
||||
<th></th>
|
||||
</tr>
|
||||
|
|
11
tools.py
11
tools.py
|
@ -84,3 +84,14 @@ async def validate_register(request, form):
|
|||
errors['email'].append("Email already in use.")
|
||||
|
||||
return errors
|
||||
|
||||
|
||||
def find_dict(lst, key, value):
|
||||
"""
|
||||
Returns the index of the dictionary in the given `lst` which
|
||||
has d[`key`] == `value`.
|
||||
"""
|
||||
for i, d in enumerate(lst):
|
||||
if d[key] == value:
|
||||
return i
|
||||
return -1
|
||||
|
|
Loading…
Reference in New Issue
Block a user