1
0
mirror of https://github.com/kakwa/ldapcherry synced 2024-11-11 12:08:51 +01:00
ldapcherry/resources/templates/roles.tmpl
kakwa 2df56d2de2 fix template over-escaping + python 3 support
The templates were html escaping the generated js code for the
autofill and the role management. This was breaking these features.
It's okay to not escape these as they are coming from a trusted source
(configuration file).

Also make the templates python3 compatible (not need to import Set in
python 3)
2019-02-06 21:38:11 +01:00

105 lines
3.6 KiB
Cheetah

## -*- coding: utf-8 -*-
<script type="text/javascript">
var graph = ${graph_js | n};
var roles = ${roles_js | n};
function enableParentRoles(roleid){
var parentRoles = graph[roleid]['parent_roles'];
var DnRole = roles[roleid];
var len = parentRoles.length;
for (var i = 0; i < len; i++) {
var role = parentRoles[i];
var DnParentRole = roles[role];
var checked = document.getElementById('role.'+ role).checked;
$('input[name="role.' + role +'"]').bootstrapSwitch('state', true, true);
if ( ! checked){
$.notify("Enable Role '" + DnParentRole + "' (Parent Role of '" + DnRole +"')",
{
type: 'info',
delay: 6500,
}
);
}
}
}
function disableSubRoles(roleid){
var parentRoles = graph[roleid]['sub_roles'];
var DnRole = roles[roleid];
var len = parentRoles.length;
for (var i = 0; i < len; i++) {
var role = parentRoles[i];
var DnParentRole = roles[role];
var checked = document.getElementById('role.'+role).checked;
$('input[name="role.' + role +'"]').bootstrapSwitch('state', false, true);
if (checked){
$.notify("Disable Role '" + DnParentRole + "' (Sub Role of '" + DnRole +"')",
{
type: 'warning',
delay: 6500,
}
);
}
}
}
</script>
<table id="RecordTable" class="table table-hover table-condensed tablesorter">
<thead>
<tr>
<th>
Role
</th>
<th class="sorter-false">
Description
</th>
<th class="sorter-false">
Parent roles
</th>
<th class="sorter-false">
Enable/Disable
</th>
</tr>
</thead>
<tbody>
%for role in roles:
<%
if not current_roles is None and role in current_roles:
checked = ' checked '
else:
checked = ''
%>
<tr>
<td>
${roles[role]['display_name']}
</td>
<td>
${roles[role]['description']}
</td>
<td>
<%
sep = ', '
parents_roles = []
for r in graph[role]['parent_roles']:
parents_roles.append(roles[r]['display_name'])
parents = sep.join(parents_roles)
%>
${parents}
</td>
<td>
<input data-on-color="success" data-off-color="danger" data-on-text="Enabled"
data-off-text="Disabled" data-handle-width="75" type="checkbox"
name="role.${role}" data-size="mini" id="role.${role}" ${checked}>
<script>$("[name='role.${role}']").bootstrapSwitch();
$('input[name="role.${role}"]').on('switchChange.bootstrapSwitch', function(event, state) {
if (state) {
enableParentRoles('${role}');
}
else {
disableSubRoles('${role}');
}
});
</script>
</td>
</tr>
% endfor
</tbody>
</table>