0013-refactor-role-s-user-and-role-managers-views-fixes-9.patch
src/authentic2/manager/role_views.py | ||
---|---|---|
9 | 9 |
from django.db.models import Count |
10 | 10 |
from django.core.urlresolvers import reverse |
11 | 11 |
from django.http import Http404 |
12 |
from django.contrib.auth import get_user_model |
|
12 | 13 | |
13 | 14 |
from django_rbac.utils import get_role_model, get_permission_model, \ |
14 | 15 |
get_role_parenting_model, get_ou_model |
... | ... | |
135 | 136 |
ctx['parents'] = views.filter_view(self.request, |
136 | 137 |
self.object.parents(include_self=False, |
137 | 138 |
annotate=True)) |
139 |
ctx['admin_roles'] = views.filter_view(self.request, |
|
140 |
self.object.get_admin_role().children( |
|
141 |
include_self=False, annotate=True)) |
|
138 | 142 |
return ctx |
139 | 143 | |
140 | 144 |
members = RoleMembersView.as_view() |
... | ... | |
226 | 230 |
members_export = RoleMembersExportView.as_view() |
227 | 231 | |
228 | 232 | |
229 |
class RoleManagerViewMixin(RoleViewMixin): |
|
230 |
model = get_role_model() |
|
231 | ||
232 |
def get_object(self): |
|
233 |
self.role_object = super(RoleManagerViewMixin, self).get_object() |
|
234 |
if self.role_object.has_self_administration(): |
|
235 |
raise Http404 |
|
236 |
return self.role_object.get_admin_role() |
|
237 | ||
238 |
def get_context_data(self, **kwargs): |
|
239 |
ctx = super(RoleManagerViewMixin, self).get_context_data(**kwargs) |
|
240 |
ctx['role'] = self.role_object |
|
241 |
return ctx |
|
242 | ||
243 | ||
244 |
class RoleManagersView(RoleManagerViewMixin, RoleMembersView): |
|
245 |
template_name = 'authentic2/manager/role_managers.html' |
|
246 | ||
247 |
managers = RoleManagersView.as_view() |
|
248 | ||
249 | ||
250 |
class RoleManagersRolesView(RoleManagerViewMixin, RoleChildrenView): |
|
251 |
template_name = 'authentic2/manager/role_managers_roles.html' |
|
252 | ||
253 |
managers_roles = RoleManagersRolesView.as_view() |
|
254 | ||
255 | ||
256 | 233 |
class RoleAddChildView(views.AjaxFormViewMixin, views.TitleMixin, |
257 | 234 |
views.PermissionMixin, SingleObjectMixin, FormView): |
258 | 235 |
title = _('Add child role') |
... | ... | |
343 | 320 |
return redirect(self.request, self.success_url) |
344 | 321 | |
345 | 322 |
remove_parent = RoleRemoveParentView.as_view() |
323 | ||
324 | ||
325 |
class RoleAddAdminRoleView(views.AjaxFormViewMixin, views.TitleMixin, |
|
326 |
views.PermissionMixin, SingleObjectMixin, FormView): |
|
327 |
title = _('Add admin role') |
|
328 |
model = get_role_model() |
|
329 |
form_class = forms.RolesForm |
|
330 |
success_url = '..' |
|
331 |
template_name = 'authentic2/manager/form.html' |
|
332 |
permissions = 'a2_rbac.change_role' |
|
333 | ||
334 |
def dispatch(self, request, *args, **kwargs): |
|
335 |
self.object = self.get_object() |
|
336 |
return super(RoleAddAdminRoleView, self).dispatch(request, *args, **kwargs) |
|
337 | ||
338 |
def form_valid(self, form): |
|
339 |
for role in form.cleaned_data['roles']: |
|
340 |
self.get_object().get_admin_role().add_child(role) |
|
341 |
return super(RoleAddAdminRoleView, self).form_valid(form) |
|
342 | ||
343 |
add_admin_role = RoleAddAdminRoleView.as_view() |
|
344 | ||
345 | ||
346 |
class RoleRemoveAdminRoleView(views.TitleMixin, views.AjaxFormViewMixin, SingleObjectMixin, |
|
347 |
views.PermissionMixin, TemplateView): |
|
348 |
title = _('Remove admin role') |
|
349 |
model = get_role_model() |
|
350 |
success_url = '../..' |
|
351 |
template_name = 'authentic2/manager/role_remove_admin_role.html' |
|
352 |
permissions = 'a2_rbac.change_role' |
|
353 | ||
354 |
def dispatch(self, request, *args, **kwargs): |
|
355 |
self.object = self.get_object() |
|
356 |
self.child = self.get_queryset().get(pk=kwargs['role_pk']) |
|
357 |
return super(RoleRemoveAdminRoleView, self).dispatch(request, *args, **kwargs) |
|
358 | ||
359 |
def get_context_data(self, **kwargs): |
|
360 |
ctx = super(RoleRemoveAdminRoleView, self).get_context_data(**kwargs) |
|
361 |
ctx['child'] = self.child |
|
362 |
return ctx |
|
363 | ||
364 |
def post(self, request, *args, **kwargs): |
|
365 |
self.object.get_admin_role().remove_child(self.child) |
|
366 |
return redirect(self.request, self.success_url) |
|
367 | ||
368 |
remove_admin_role = RoleRemoveAdminRoleView.as_view() |
|
369 | ||
370 | ||
371 |
class RoleAddAdminUserView(views.AjaxFormViewMixin, views.TitleMixin, |
|
372 |
views.PermissionMixin, SingleObjectMixin, FormView): |
|
373 |
title = _('Add admin user') |
|
374 |
model = get_role_model() |
|
375 |
form_class = forms.UsersForm |
|
376 |
success_url = '..' |
|
377 |
template_name = 'authentic2/manager/form.html' |
|
378 |
permissions = 'a2_rbac.change_role' |
|
379 | ||
380 |
def dispatch(self, request, *args, **kwargs): |
|
381 |
self.object = self.get_object() |
|
382 |
return super(RoleAddAdminUserView, self).dispatch(request, *args, **kwargs) |
|
383 | ||
384 |
def form_valid(self, form): |
|
385 |
for user in form.cleaned_data['users']: |
|
386 |
self.get_object().get_admin_role().members.add(user) |
|
387 |
return super(RoleAddAdminUserView, self).form_valid(form) |
|
388 | ||
389 |
add_admin_user = RoleAddAdminUserView.as_view() |
|
390 | ||
391 | ||
392 |
class RoleRemoveAdminUserView(views.TitleMixin, views.AjaxFormViewMixin, SingleObjectMixin, |
|
393 |
views.PermissionMixin, TemplateView): |
|
394 |
title = _('Remove admin user') |
|
395 |
model = get_role_model() |
|
396 |
success_url = '../..' |
|
397 |
template_name = 'authentic2/manager/role_remove_admin_user.html' |
|
398 |
permissions = 'a2_rbac.change_role' |
|
399 | ||
400 |
def dispatch(self, request, *args, **kwargs): |
|
401 |
self.object = self.get_object() |
|
402 |
self.user = get_user_model().objects.get(pk=kwargs['user_pk']) |
|
403 |
return super(RoleRemoveAdminUserView, self).dispatch(request, *args, **kwargs) |
|
404 | ||
405 |
def get_context_data(self, **kwargs): |
|
406 |
ctx = super(RoleRemoveAdminUserView, self).get_context_data(**kwargs) |
|
407 |
ctx['user'] = self.user |
|
408 |
return ctx |
|
409 | ||
410 |
def post(self, request, *args, **kwargs): |
|
411 |
self.object.get_admin_role().members.remove(self.user) |
|
412 |
return redirect(self.request, self.success_url) |
|
413 | ||
414 |
remove_admin_user = RoleRemoveAdminUserView.as_view() |
src/authentic2/manager/service_views.py | ||
---|---|---|
45 | 45 |
success_url = '..' |
46 | 46 | |
47 | 47 |
edit = ServiceEditView.as_view() |
48 | ||
49 | ||
50 |
class ServiceRoleMixin(object): |
|
51 |
service_roles = True |
|
52 | ||
53 |
def dispatch(self, request, *args, **kwargs): |
|
54 |
self.service = get_object_or_404(Service, pk=kwargs['service_pk']) |
|
55 |
return super(ServiceRoleMixin, self).dispatch(request, *args, **kwargs) |
|
56 | ||
57 |
def get_queryset(self): |
|
58 |
return super(ServiceRoleMixin, self).get_queryset() \ |
|
59 |
.filter(service_id=self.kwargs['service_pk']) |
|
60 | ||
61 | ||
62 |
class ServiceRoleMembersView(ServiceRoleMixin, |
|
63 |
role_views.RoleMembersView): |
|
64 |
template_name = 'authentic2/manager/service_role_members.html' |
|
65 |
permissions = ['authentic2.view_service'] |
|
66 | ||
67 |
role_members = ServiceRoleMembersView.as_view() |
|
68 | ||
69 | ||
70 |
class ServiceRoleChildrenView(ServiceRoleMixin, |
|
71 |
role_views.RoleChildrenView): |
|
72 |
template_name = 'authentic2/manager/service_role_children.html' |
|
73 |
permissions = ['authentic2.view_service'] |
|
74 | ||
75 |
role_children = ServiceRoleChildrenView.as_view() |
|
76 | ||
77 | ||
78 |
class ServiceRoleManagersView(ServiceRoleMixin, |
|
79 |
role_views.RoleManagersView): |
|
80 |
template_name = 'authentic2/manager/service_role_managers.html' |
|
81 |
permissions = ['authentic2.view_service'] |
|
82 | ||
83 |
role_managers = ServiceRoleManagersView.as_view() |
|
84 | ||
85 | ||
86 |
class ServiceRoleManagerRolesView(ServiceRoleMixin, |
|
87 |
role_views.RoleManagersRolesView): |
|
88 |
template_name = 'authentic2/manager/service_role_managers_roles.html' |
|
89 |
permissions = ['authentic2.view_service'] |
|
90 | ||
91 |
role_managers_roles = ServiceRoleManagerRolesView.as_view() |
src/authentic2/manager/templates/authentic2/manager/role_children.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/role_common.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="..">{{ object }}</a> |
|
7 |
<a href="#">{% trans "Children roles" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
{% if not object.is_internal and view.can_delete %} |
|
13 |
<a rel="popup" href="{% url "a2-manager-role-delete" pk=object.pk %}">{% trans "Delete" %}</a> |
|
14 |
{% endif %} |
|
15 |
{% if view.can_change and not object.is_internal %} |
|
16 |
<a rel="popup" href="{% url "a2-manager-role-edit" pk=object.pk %}">{% trans "Edit" %}</a> |
|
17 |
{% if ROLES_SHOW_PERMISSIONS %} |
|
18 |
<a href="{% url "a2-manager-role-permissions" pk=object.pk %}">{% trans "Permissions" %}</a> |
|
19 |
{% endif %} |
|
20 |
<a href="{% url "a2-manager-role-managers" pk=object.pk %}">{% trans "Managers" %}</a> |
|
21 |
{% endif %} |
|
22 |
<a href="{% url "a2-manager-role-members" pk=object.pk %}">{% trans "Members" %}</a> |
|
23 |
{% endblock %} |
|
24 | ||
25 | ||
26 |
{% block extra_scripts %} |
|
27 |
{{ block.super }} |
|
28 |
{{ choose_user_form.media }} |
|
29 |
{% endblock %} |
|
30 | ||
31 |
{% block main %} |
|
32 |
{% with row_link=1 url_name="a2-manager-role-members" %} |
|
33 |
{% render_table table "authentic2/manager/role_children_table.html" %} |
|
34 |
{% endwith %} |
|
35 | ||
36 |
{% if view.can_change %} |
|
37 |
<form method="post" class="manager-m2m-add-form"> |
|
38 |
{% csrf_token %} |
|
39 |
{{ form }} |
|
40 |
<button>{% trans "Add" %}</button> |
|
41 |
</form> |
|
42 |
{% endif %} |
|
43 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/role_managers.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/role_common.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url "a2-manager-role-members" pk=role.pk %}">{{ role }}</a> |
|
7 |
<a href="#">{% trans "Managers" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
<a href="{% url "a2-manager-role-manager-roles" pk=role.pk %}">{% trans "Manager roles" %}</a> |
|
13 |
{% endblock %} |
|
14 | ||
15 | ||
16 |
{% block extra_scripts %} |
|
17 |
{{ block.super }} |
|
18 |
{{ choose_user_form.media }} |
|
19 |
{% endblock %} |
|
20 | ||
21 |
{% block main %} |
|
22 |
{% with row_link=1 url_name="a2-manager-user-edit" %} |
|
23 |
{% render_table table "authentic2/manager/role_managers_table.html" %} |
|
24 |
{% endwith %} |
|
25 | ||
26 |
{% if view.can_change %} |
|
27 |
<form method="post" class="manager-m2m-add-form"> |
|
28 |
{% csrf_token %} |
|
29 |
{{ form }} |
|
30 |
<button>{% trans "Add" %}</button> |
|
31 |
</form> |
|
32 |
{% endif %} |
|
33 |
</div> |
|
34 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/role_managers_roles.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/role_common.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url "a2-manager-role-members" pk=role.pk %}">{{ role }}</a> |
|
7 |
<a href="#">{% trans "Manager roles" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
{% if view.can_view %} |
|
13 |
<a href="{% url "a2-manager-role-managers" pk=role.pk %}">{% trans "Managers" %}</a> |
|
14 |
{% endif %} |
|
15 |
{% endblock %} |
|
16 | ||
17 | ||
18 |
{% block extra_scripts %} |
|
19 |
{{ block.super }} |
|
20 |
{{ choose_user_form.media }} |
|
21 |
{% endblock %} |
|
22 | ||
23 |
{% block main %} |
|
24 |
{% with row_link=1 url_name="a2-manager-role-members" %} |
|
25 |
{% render_table table "authentic2/manager/role_children_table.html" %} |
|
26 |
{% endwith %} |
|
27 | ||
28 |
{% if view.can_change %} |
|
29 |
<form method="post" class="manager-m2m-add-form"> |
|
30 |
{% csrf_token %} |
|
31 |
{{ form }} |
|
32 |
<button>{% trans "Add" %}</button> |
|
33 |
</form> |
|
34 |
{% endif %} |
|
35 |
</div> |
|
36 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/role_managers_table.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/role_members_table.html" %} |
src/authentic2/manager/templates/authentic2/manager/role_members.html | ||
---|---|---|
6 | 6 |
<a href="#">{{ object }}</a> |
7 | 7 |
{% endblock %} |
8 | 8 | |
9 |
{% block page_title %}{% trans "Role" %} - {{ title }}{% endblock %} |
|
10 | ||
11 |
{% block sidebar %} |
|
12 |
<p>{{ object.description }}</p> |
|
13 |
{% endblock %} |
|
14 | ||
9 | 15 |
{% block appbar %} |
10 | 16 |
{{ block.super }} |
11 | 17 |
{% if not object.is_internal and view.can_delete %} |
... | ... | |
31 | 37 |
{% endif %} |
32 | 38 |
{% endif %} |
33 | 39 |
{% endif %} |
34 |
{% if not object.has_self_administration %} |
|
35 |
<a href="{% url "a2-manager-role-managers" pk=object.pk %}">{% trans "Managers" %}</a> |
|
36 |
{% endif %} |
|
37 | 40 |
{% endblock %} |
38 | 41 | |
39 | 42 | |
... | ... | |
56 | 59 |
<button>{% trans "Add" %}</button> |
57 | 60 |
</form> |
58 | 61 |
{% endif %} |
59 |
<h2>{% trans "Inheritance" %}</h2> |
|
60 |
<div class=role-inheritance"> |
|
62 |
<fieldset class="gadjo-foldable gadjo-folded" id="other-properties"> |
|
63 |
<legend class="gadjo-foldable-widget">{% trans "Advanced parameters" %}</legend> |
|
64 |
<div class="role-inheritance gadjo-folding"> |
|
65 |
{% trans "Is administered by users" %} |
|
66 |
{% for user in object.get_admin_role.all_members %} |
|
67 |
<a href="{% url "a2-manager-user-edit" pk=user.pk %}">{{ user.get_full_name }}</a> |
|
68 |
{% if user.direct %} |
|
69 |
<a rel="popup" href="{% url "a2-manager-role-remove-admin-user" pk=object.pk user_pk=user.pk %}" class="role-remove icon-minus-sign"></a> |
|
70 |
{% else %} |
|
71 |
<a title="{% trans "Indirect child role" %}" class="disabled role-remove icon-minus-sign"></a> |
|
72 |
{% endif %} |
|
73 |
{% endfor %} |
|
74 |
{% if view.can_change %} |
|
75 |
<a rel="popup" href="{% url "a2-manager-role-add-admin-user" pk=object.pk %}" class="role-add icon-add-sign"></a> |
|
76 |
{% else %} |
|
77 |
<a title="{% trans "Permission denied" %}" class="disabled role-add icon-add-sign"></a> |
|
78 |
{% endif %} |
|
79 |
</div> |
|
80 |
<div class="role-inheritance gadjo-folding"> |
|
81 |
{% trans "Is administered by roles" %} |
|
82 |
{% for role in admin_roles %} |
|
83 |
<a href="{% url "a2-manager-role-members" pk=role.pk %}">{{ role }}</a> |
|
84 |
{% if role.direct %} |
|
85 |
<a rel="popup" href="{% url "a2-manager-role-remove-admin-role" pk=object.pk role_pk=role.pk %}" class="role-remove icon-minus-sign"></a> |
|
86 |
{% else %} |
|
87 |
<a title="{% trans "Indirect admin role" %}" class="disabled role-remove icon-minus-sign"></a> |
|
88 |
{% endif %} |
|
89 |
{% endfor %} |
|
90 |
{% if view.can_change %} |
|
91 |
<a rel="popup" href="{% url "a2-manager-role-add-admin-role" pk=object.pk %}" class="role-add icon-add-sign"></a> |
|
92 |
{% else %} |
|
93 |
<a title="{% trans "Permission denied" %}" class="disabled role-add icon-add-sign"></a> |
|
94 |
{% endif %} |
|
95 |
</div> |
|
96 |
<div class="role-inheritance gadjo-folding"> |
|
61 | 97 |
{% trans "Child roles:" %} |
62 | 98 |
{% for child in children %} |
63 | 99 |
<a href="{% url "a2-manager-role-members" pk=child.pk %}">{{ child }}</a> |
... | ... | |
73 | 109 |
<a title="{% trans "Permission denied" %}" class="disabled role-add icon-add-sign"></a> |
74 | 110 |
{% endif %} |
75 | 111 |
</div> |
76 |
<div class="role-inheritance"> |
|
112 |
<div class="role-inheritance gadjo-folding">
|
|
77 | 113 |
{% trans "Parent roles:" %} |
78 | 114 |
{% for parent in parents %} |
79 | 115 |
<a class="role" href="{% url "a2-manager-role-members" pk=parent.pk %}">{{ parent }}</a> |
... | ... | |
89 | 125 |
<a title="{% trans "This role is technical, you cannot modify its permissions." %}" class="disabled role-add icon-add-sign"></a> |
90 | 126 |
{% endif %} |
91 | 127 |
</div> |
128 |
</fieldset> |
|
92 | 129 |
</div> |
93 | 130 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/role_permissions.html | ||
---|---|---|
14 | 14 |
{% endif %} |
15 | 15 |
{% if view.can_change and not object.is_internal %} |
16 | 16 |
<a rel="popup" href="{% url "a2-manager-role-edit" pk=object.pk %}">{% trans "Edit" %}</a> |
17 |
<a href="{% url "a2-manager-role-managers" pk=object.pk %}">{% trans "Managers" %}</a> |
|
18 | 17 |
{% endif %} |
19 |
<a href="{% url "a2-manager-role-children" pk=object.pk %}">{% trans "Children roles" %}</a> |
|
20 | 18 |
<a href="{% url "a2-manager-role-members" pk=object.pk %}">{% trans "Members" %}</a> |
21 | 19 |
{% endblock %} |
22 | 20 |
src/authentic2/manager/templates/authentic2/manager/role_remove_admin_role.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/sidebar.html" %} |
|
2 |
{% load i18n %} |
|
3 | ||
4 |
{% block messages %} |
|
5 |
{% endblock %} |
|
6 | ||
7 |
{% block main %} |
|
8 |
{% if title %} |
|
9 |
<div id="appbar"><h2>{{ title }}</h2></div> |
|
10 |
{% endif %} |
|
11 |
<form method="post"> |
|
12 |
{% csrf_token %} |
|
13 |
<div class="form-inner-container"> |
|
14 |
{% block caption %} |
|
15 |
<p>{% blocktrans %}Do you want to remove admin role {{ child }} ?{% endblocktrans %}</p> |
|
16 |
{% endblock %} |
|
17 |
<div class="buttons"> |
|
18 |
<button>{% trans "Remove" %}</button> |
|
19 |
<a class="cancel" href="..">{% trans "Cancel" %}</a> |
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</form> |
|
23 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/role_remove_admin_user.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/sidebar.html" %} |
|
2 |
{% load i18n %} |
|
3 | ||
4 |
{% block messages %} |
|
5 |
{% endblock %} |
|
6 | ||
7 |
{% block main %} |
|
8 |
{% if title %} |
|
9 |
<div id="appbar"><h2>{{ title }}</h2></div> |
|
10 |
{% endif %} |
|
11 |
<form method="post"> |
|
12 |
{% csrf_token %} |
|
13 |
<div class="form-inner-container"> |
|
14 |
{% block caption %} |
|
15 |
<p>{% blocktrans with user=user.get_full_name %}Do you want to remove admin user {{ user }} ?{% endblocktrans %}</p> |
|
16 |
{% endblock %} |
|
17 |
<div class="buttons"> |
|
18 |
<button>{% trans "Remove" %}</button> |
|
19 |
<a class="cancel" href="..">{% trans "Cancel" %}</a> |
|
20 |
</div> |
|
21 |
</div> |
|
22 |
</form> |
|
23 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/service_role_children.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url 'a2-manager-service-role-members' service_pk=view.kwargs.service_pk pk=object.pk %}">{{ object.name }}</a> |
|
7 |
<a href="#">{% trans "Children roles" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
{% if view.can_change and not object.is_internal %} |
|
13 |
<a href="{% url "a2-manager-service-role-managers" service_pk=view.kwargs.service_pk pk=object.pk %}">{% trans "Managers" %}</a> |
|
14 |
{% endif %} |
|
15 |
<a href="{% url "a2-manager-service-role-members" service_pk=view.kwargs.service_pk pk=object.pk %}">{% trans "Members" %}</a> |
|
16 |
{% endblock %} |
|
17 | ||
18 |
{% block sidebar %} |
|
19 |
{% include "authentic2/manager/search_form.html" %} |
|
20 |
{% endblock %} |
|
21 | ||
22 |
{% block main %} |
|
23 |
{% with row_link=1 url_name="a2-manager-role-members" %} |
|
24 |
{% render_table table "authentic2/manager/role_children_table.html" %} |
|
25 |
{% endwith %} |
|
26 | ||
27 |
{% if view.can_change %} |
|
28 |
<form method="post" class="manager-m2m-add-form"> |
|
29 |
{% csrf_token %} |
|
30 |
{{ form }} |
|
31 |
<button>{% trans "Add" %}</button> |
|
32 |
</form> |
|
33 |
{% endif %} |
|
34 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/service_role_managers.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url "a2-manager-service-role-members" service_pk=view.kwargs.service_pk pk=role.pk %}">{{ role }}</a> |
|
7 |
<a href="#">{% trans "Managers" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
<a href="{% url "a2-manager-service-role-managers-roles" service_pk=view.kwargs.service_pk pk=role.pk %}">{% trans "Manager roles" %}</a> |
|
13 |
{% endblock %} |
|
14 | ||
15 | ||
16 |
{% block sidebar %} |
|
17 |
{% include "authentic2/manager/search_form.html" %} |
|
18 |
{% endblock %} |
|
19 | ||
20 |
{% block main %} |
|
21 |
{% with row_link=1 url_name="a2-manager-user-edit" %} |
|
22 |
{% render_table table "authentic2/manager/role_managers_table.html" %} |
|
23 |
{% endwith %} |
|
24 | ||
25 |
{% if view.can_change %} |
|
26 |
<form method="post" class="manager-m2m-add-form"> |
|
27 |
{% csrf_token %} |
|
28 |
{{ form }} |
|
29 |
<button>{% trans "Add" %}</button> |
|
30 |
</form> |
|
31 |
{% endif %} |
|
32 |
</div> |
|
33 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/service_role_managers_roles.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url "a2-manager-service-role-members" service_pk=view.kwargs.service_pk pk=role.pk %}">{{ role }}</a> |
|
7 |
<a href="#">{% trans "Manager roles" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block appbar %} |
|
11 |
{{ block.super }} |
|
12 |
<a href="{% url "a2-manager-role-managers" pk=role.pk %}">{% trans "Managers" %}</a> |
|
13 |
{% endblock %} |
|
14 | ||
15 |
{% block sidebar %} |
|
16 |
{% include "authentic2/manager/search_form.html" %} |
|
17 |
{% endblock %} |
|
18 | ||
19 |
{% block main %} |
|
20 |
{% with row_link=1 url_name="a2-manager-role-members" %} |
|
21 |
{% render_table table "authentic2/manager/role_children_table.html" %} |
|
22 |
{% endwith %} |
|
23 | ||
24 |
{% if view.can_change %} |
|
25 |
<form method="post" class="manager-m2m-add-form"> |
|
26 |
{% csrf_token %} |
|
27 |
{{ form }} |
|
28 |
<button>{% trans "Add" %}</button> |
|
29 |
</form> |
|
30 |
{% endif %} |
|
31 |
</div> |
|
32 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/manager/service_role_members.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="#">{{ object }}</a> |
|
7 |
{% endblock %} |
|
8 | ||
9 |
{% block appbar %} |
|
10 |
{{ block.super }} |
|
11 |
{% if view.can_change and not object.is_internal %} |
|
12 |
<a href="{% url "a2-manager-service-role-managers" service_pk=view.kwargs.service_pk pk=object.pk %}">{% trans "Managers" %}</a> |
|
13 |
{% endif %} |
|
14 |
<a href="{% url "a2-manager-service-role-children" service_pk=view.kwargs.service_pk pk=object.pk %}">{% trans "Children roles" %}</a> |
|
15 |
{% endblock %} |
|
16 | ||
17 |
{% block sidebar %} |
|
18 |
{% include "authentic2/manager/search_form.html" %} |
|
19 |
{% endblock %} |
|
20 | ||
21 |
{% block main %} |
|
22 |
{% with row_link=1 url_name="a2-manager-user-edit" %} |
|
23 |
{% render_table table "authentic2/manager/role_members_table.html" %} |
|
24 |
{% endwith %} |
|
25 | ||
26 |
{% include "authentic2/manager/export_include.html" with export_view_name="a2-manager-role-members-export" %} |
|
27 | ||
28 |
{% if view.can_change %} |
|
29 |
<form method="post" class="manager-m2m-add-form"> |
|
30 |
{% csrf_token %} |
|
31 |
{{ form }} |
|
32 |
<button>{% trans "Add" %}</button> |
|
33 |
</form> |
|
34 |
{% endif %} |
|
35 |
</div> |
|
36 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/service_role_managers.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url 'a2-manager-service-role-members' service_pk=view.kwargs.service_pk pk=object.pk %}">{{ object.name }}</a> |
|
7 |
<a href="#">{% trans "Managers" %}</a> |
|
8 |
{% endblock %} |
|
9 | ||
10 |
{% block page_title %} |
|
11 |
{% trans "Managers" %} |
|
12 |
{% endblock %} |
|
13 | ||
14 |
{% block appbar %} |
|
15 |
{{ block.super }} |
|
16 |
<a href="{% url "a2-manager-role-manager-roles" pk=role.pk %}">{% trans "Manager roles" %}</a> |
|
17 |
{% endblock %} |
|
18 | ||
19 | ||
20 |
{% block extra_scripts %} |
|
21 |
{{ block.super }} |
|
22 |
{{ choose_user_form.media }} |
|
23 |
{% endblock %} |
|
24 | ||
25 |
{% block main %} |
|
26 |
{% with row_link=1 url_name="a2-manager-user-edit" %} |
|
27 |
{% render_table table "authentic2/manager/role_managers_table.html" %} |
|
28 |
{% endwith %} |
|
29 | ||
30 |
{% if view.can_change %} |
|
31 |
<form method="post" class="manager-m2m-add-form"> |
|
32 |
{% csrf_token %} |
|
33 |
{{ form }} |
|
34 |
<button>{% trans "Add" %}</button> |
|
35 |
</form> |
|
36 |
{% endif %} |
|
37 |
</div> |
|
38 |
{% endblock %} |
src/authentic2/manager/templates/authentic2/service_role_members.html | ||
---|---|---|
1 |
{% extends "authentic2/manager/service.html" %} |
|
2 |
{% load i18n staticfiles django_tables2 %} |
|
3 | ||
4 |
{% block breadcrumb %} |
|
5 |
{{ block.super }} |
|
6 |
<a href="{% url 'a2-manager-service-role-members' service_pk=view.kwargs.service_pk pk=object.pk %}">{{ object.name }}</a> |
|
7 |
{% endblock %} |
|
8 | ||
9 |
{% block appbar %} |
|
10 |
{% if view.can_change and not object.admin_scope_ct_id %} |
|
11 |
<a href="{% url "a2-manager-service-role-managers" pk=object.pk %}">{% trans "Managers" %}</a> |
|
12 |
{% endif %} |
|
13 |
<a href="{% url "a2-manager-service-role-children" pk=object.pk %}">{% trans "Children roles" %}</a> |
|
14 |
{% endblock %} |
|
15 | ||
16 | ||
17 |
{% block extra_scripts %} |
|
18 |
{{ block.super }} |
|
19 |
{{ choose_user_form.media }} |
|
20 |
{% endblock %} |
|
21 | ||
22 |
{% block main %} |
|
23 |
{% with row_link=1 url_name="a2-manager-user-edit" %} |
|
24 |
{% render_table table "authentic2/manager/role_members_table.html" %} |
|
25 |
{% endwith %} |
|
26 | ||
27 |
{% include "authentic2/manager/export_include.html" with export_view_name="a2-manager-role-members-export" %} |
|
28 | ||
29 |
{% if view.can_change %} |
|
30 |
<form method="post" class="manager-m2m-add-form"> |
|
31 |
{% csrf_token %} |
|
32 |
{{ form }} |
|
33 |
<button>{% trans "Add" %}</button> |
|
34 |
</form> |
|
35 |
{% endif %} |
|
36 |
{% endblock %} |
src/authentic2/manager/urls.py | ||
---|---|---|
35 | 35 |
role_views.export, name='a2-manager-roles-export'), |
36 | 36 |
url(r'^roles/(?P<pk>\d+)/$', role_views.members, |
37 | 37 |
name='a2-manager-role-members'), |
38 |
url(r'^roles/(?P<pk>\d+)/children/$', role_views.children, |
|
39 |
name='a2-manager-role-children'), |
|
40 | 38 |
url(r'^roles/(?P<pk>\d+)/add-child/$', role_views.add_child, |
41 | 39 |
name='a2-manager-role-add-child'), |
42 | 40 |
url(r'^roles/(?P<pk>\d+)/add-parent/$', role_views.add_parent, |
... | ... | |
45 | 43 |
role_views.remove_child, name='a2-manager-role-remove-child'), |
46 | 44 |
url(r'^roles/(?P<pk>\d+)/remove-parent/(?P<parent_pk>\d+)/$', |
47 | 45 |
role_views.remove_parent, name='a2-manager-role-remove-parent'), |
46 | ||
47 |
url(r'^roles/(?P<pk>\d+)/add-admin-user/$', role_views.add_admin_user, |
|
48 |
name='a2-manager-role-add-admin-user'), |
|
49 |
url(r'^roles/(?P<pk>\d+)/remove-admin-user/(?P<user_pk>\d+)/$', |
|
50 |
role_views.remove_admin_user, name='a2-manager-role-remove-admin-user'), |
|
51 | ||
52 |
url(r'^roles/(?P<pk>\d+)/add-admin-role/$', role_views.add_admin_role, |
|
53 |
name='a2-manager-role-add-admin-role'), |
|
54 |
url(r'^roles/(?P<pk>\d+)/remove-admin-role/(?P<role_pk>\d+)/$', |
|
55 |
role_views.remove_admin_role, name='a2-manager-role-remove-admin-role'), |
|
56 | ||
48 | 57 |
url(r'^roles/(?P<pk>\d+)/export/(?P<format>csv|json|html|ods)/$', |
49 | 58 |
role_views.members_export, |
50 | 59 |
name='a2-manager-role-members-export'), |
... | ... | |
55 | 64 |
url(r'^roles/(?P<pk>\d+)/permissions/$', role_views.permissions, |
56 | 65 |
name='a2-manager-role-permissions'), |
57 | 66 | |
58 |
url(r'^roles/(?P<pk>\d+)/managers/roles/$', role_views.managers_roles, |
|
59 |
name='a2-manager-role-manager-roles'), |
|
60 |
url(r'^roles/(?P<pk>\d+)/managers/$', role_views.managers, |
|
61 |
name='a2-manager-role-managers'), |
|
62 | ||
63 | 67 | |
64 | 68 |
# Authentic2 organizational units |
65 | 69 |
url(r'^organizational-units/$', ou_views.listing, |
... | ... | |
78 | 82 |
name='a2-manager-service'), |
79 | 83 |
url(r'^services/(?P<service_pk>\d+)/edit/$', service_views.edit, |
80 | 84 |
name='a2-manager-service-edit'), |
81 |
url(r'^services/(?P<service_pk>\d+)/(?P<pk>\d+)/$', |
|
82 |
service_views.role_members, |
|
83 |
name='a2-manager-service-role-members'), |
|
84 |
url(r'^services/(?P<service_pk>\d+)/(?P<pk>\d+)/children/$', |
|
85 |
service_views.role_children, |
|
86 |
name='a2-manager-service-role-children'), |
|
87 |
url(r'^services/(?P<service_pk>\d+)/(?P<pk>\d+)/managers/$', |
|
88 |
service_views.role_managers, |
|
89 |
name='a2-manager-service-role-managers'), |
|
90 |
url(r'^services/(?P<service_pk>\d+)/(?P<pk>\d+)/managers/roles/$', |
|
91 |
service_views.role_managers_roles, |
|
92 |
name='a2-manager-service-role-managers-roles'), |
|
93 | 85 | |
94 | 86 |
# backoffice menu as json |
95 | 87 |
url(r'^menu.json$', views.menu_json), |
96 |
- |