manager: group roles by OU on user page (#24397)
This commit is contained in:
parent
21e0a34fd1
commit
024e23dd71
|
@ -70,7 +70,7 @@
|
|||
<h3>{% trans "Roles" %}</h3>
|
||||
<ul>
|
||||
{% for ou, ou_roles in roles_by_ou.items %}
|
||||
{% if multiple_ou %}
|
||||
{% if have_roles_on_multiple_ou %}
|
||||
<li>{% if ou %}{{ ou }}{% else %}{% trans "All organizational units" %}{% endif %}
|
||||
<ul>
|
||||
{% endif %}
|
||||
|
@ -78,7 +78,7 @@
|
|||
<li {% if role.description %}title="{{ role.description }}"{% endif %}>
|
||||
<a href="{% url "a2-manager-role-members" pk=role.pk %}">{{ role }}</a></li>
|
||||
{% endfor %}
|
||||
{% if multiple_ou %}
|
||||
{% if have_roles_on_multiple_ou %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
|
|
@ -343,6 +343,7 @@ class UserDetailView(OtherActionsMixin, BaseDetailView):
|
|||
roles_by_ou.setdefault(role.ou.name if role.ou else '', []).append(role)
|
||||
kwargs['roles'] = roles
|
||||
kwargs['roles_by_ou'] = roles_by_ou
|
||||
kwargs['have_roles_on_multiple_ou'] = len(roles_by_ou.keys()) > 1
|
||||
# show modify roles button only if something is possible
|
||||
kwargs['can_change_roles'] = self.has_perm_on_roles(self.request.user, self.object)
|
||||
user_data = []
|
||||
|
|
|
@ -132,11 +132,22 @@ def test_manager_user_password_reset(app, superuser, simple_user):
|
|||
assert str(app.session['_auth_user_id']) == str(simple_user.pk)
|
||||
|
||||
|
||||
def test_manager_user_detail_by_uuid(app, superuser, simple_user):
|
||||
def test_manager_user_detail_by_uuid(app, superuser, simple_user, simple_role):
|
||||
simple_user.roles.add(simple_role)
|
||||
url = reverse('a2-manager-user-by-uuid-detail', kwargs={'slug': simple_user.uuid})
|
||||
resp = login(app, superuser, url)
|
||||
assert '<h3>Actions</h3>' in resp.text
|
||||
assert simple_user.first_name.encode('utf-8') in resp.content
|
||||
assert 'simple role' in resp.html.find('div', {'class': 'user-roles'}).ul.li.text
|
||||
|
||||
# if user has roles on multiple, roles are grouped by OU
|
||||
simple_user.roles.add(Role.objects.create(name='global role', slug='global-role', ou=None))
|
||||
resp = app.get(url)
|
||||
html_roles = resp.html.find('div', {'class': 'user-roles'})
|
||||
assert 'Default organizational unit' in html_roles.ul.find_all('li', recursive=False)[0].next
|
||||
assert 'simple role' in html_roles.ul.find_all('li', recursive=False)[0].ul.li.text
|
||||
assert 'All organizational units' in html_roles.ul.find_all('li', recursive=False)[1].next
|
||||
assert 'global role' in html_roles.ul.find_all('li', recursive=False)[1].ul.li.text
|
||||
|
||||
|
||||
def test_manager_user_edit_by_uuid(app, superuser, simple_user):
|
||||
|
|
Loading…
Reference in New Issue