Add initial version of "Find Users by Permission" page

This commit is contained in:
Lance Edgar 2017-02-04 18:16:18 -06:00
parent afffb911d2
commit dd5162c151
4 changed files with 165 additions and 2 deletions

View file

@ -0,0 +1,81 @@
## -*- coding: utf-8 -*-
<%inherit file="/base.mako" />
<%def name="title()">Find Users by Permission</%def>
<%def name="extra_javascript()">
${parent.extra_javascript()}
<script type="text/javascript">
<% gcount = len(permissions) %>
var permissions_by_group = {
% for g, (gkey, group) in enumerate(permissions, 1):
<% pcount = len(group['perms']) %>
'${gkey}': {
% for p, (pkey, perm) in enumerate(group['perms'], 1):
'${pkey}': "${perm['label']}"${',' if p < pcount else ''}
% endfor
}${',' if g < gcount else ''}
% endfor
};
$(function() {
$('#permission_group').selectmenu({
change: function(event, ui) {
var perms = $('#permission');
perms.find('option:first').siblings('option').remove();
$.each(permissions_by_group[ui.item.value], function(key, label) {
perms.append($('<option value="' + key + '">' + label + '</option>'));
});
perms.selectmenu('refresh');
}
});
$('#permission').selectmenu();
$('#find-by-perm-form').submit(function() {
$('.newgrid').remove();
$(this).find('#submit').button('disable').button('option', 'label', "Searching, please wait...");
});
});
</script>
</%def>
${h.form(request.current_route_url(), id='find-by-perm-form')}
${h.csrf_token(request)}
<div class="form">
${self.wtfield(form, 'permission_group')}
${self.wtfield(form, 'permission')}
<div class="buttons">
${h.submit('submit', "Find Users")}
</div>
</div>
${h.end_form()}
% if users is not None:
<div class="newgrid half">
<br />
<h2>Users with that permission (${len(users)} total):</h2>
<table>
<thead>
<tr>
<th>Username</th>
<th>Person</th>
</tr>
</thead>
<tbody>
% for user in users:
<tr>
<td>${h.link_to(user.username, url('users.view', uuid=user.uuid))}</td>
<td>${user.person or ''}</td>
</tr>
% endfor
</tbody>
</table>
</div>
% endif

View file

@ -0,0 +1,11 @@
## -*- coding: utf-8 -*-
<%inherit file="/master/index.mako" />
<%def name="context_menu_items()">
${parent.context_menu_items()}
% if request.has_perm('users.find_by_perm'):
<li>${h.link_to("Find Users with Permission X", url('users.find_by_perm'))}</li>
% endif
</%def>
${parent.body()}