def admin_users():
if not session.get('user').get('is_admin'):
abort(401)
- users = query_db('select *, roles.name as rolename from (select *, name as username from users join user_role on id=id_user order by id desc) join roles on id_role=roles.id')
- # :TODO:maethor:20120530: Find a way to reduce the dict
+ tuples = query_db('select *, roles.name as rolename from (select *, id as userid, name as username from users join user_role on id=id_user order by id desc) join roles on id_role=roles.id')
+ users = dict()
+ for t in tuples:
+ if t['userid'] in users:
+ users[t['userid']]['roles'].append(t["rolename"])
+ else:
+ users[t['userid']] = dict()
+ users[t['userid']]['userid'] = t['userid']
+ users[t['userid']]['email'] = t['email']
+ users[t['userid']]['username'] = t['username']
+ users[t['userid']]['is_admin'] = t['is_admin']
+ users[t['userid']]['roles'] = [t['rolename']]
+
return render_template('admin_users.html', users=users)
@app.route('/admin/users/add', methods=['GET', 'POST'])
</tr>
</thead>
<tbody>
- {% for user in users %}
+ {% for user in users.values() %}
<tr>
<td>{{ user.email }}</td>
<td>{{ user.username }}</td>
- <td>{{ user.rolename }}</td>
+ <td>{% for role in user.roles %}<span class="label">{{ role }}</span> {% endfor %}</td>
<td>{% if user.is_admin %}<span class="label label-success">Oui</span>{% else %}<span class="label">Non</span>{% endif %}</td>
<td>
<a href="" class="btn btn-mini">Éditer</a>