manager: provide an updated menu.json including main backoffice page (#66496)

This commit is contained in:
Paul Marillonnet 2022-06-23 09:52:17 +02:00 committed by Frédéric Péters
parent 09b1e27c1f
commit d6bf65e441
2 changed files with 33 additions and 0 deletions

View File

@ -590,6 +590,15 @@ class HomepageView(TitleMixin, PermissionMixin, MediaMixin, TemplateView):
'custom_user.search_user',
]
default_entries = [
{
'class': 'icon-identity-management',
'href': reverse_lazy('a2-manager-homepage'),
'label': _('Identity management'),
'order': -1,
'sub': False,
'skip_homepage': True,
'slug': 'identity-management',
},
{
'class': 'icon-organizational-units',
'href': reverse_lazy('a2-manager-ous'),
@ -597,6 +606,7 @@ class HomepageView(TitleMixin, PermissionMixin, MediaMixin, TemplateView):
'help_text': _('Organizational units are used to group users and roles.'),
'order': 1,
'permission': 'a2_rbac.search_organizationalunit',
'skip_menu': True,
'slug': 'organizational-units',
},
{
@ -606,6 +616,7 @@ class HomepageView(TitleMixin, PermissionMixin, MediaMixin, TemplateView):
'help_text': _('Users are the main actors in identity management.'),
'order': -1,
'permission': 'custom_user.search_user',
'sub': True,
'slug': 'users',
},
{
@ -615,6 +626,7 @@ class HomepageView(TitleMixin, PermissionMixin, MediaMixin, TemplateView):
'help_text': _('Roles are used to give some user specific access rights.'),
'order': -1,
'permission': 'a2_rbac.search_role',
'sub': True,
'slug': 'roles',
},
{
@ -624,6 +636,7 @@ class HomepageView(TitleMixin, PermissionMixin, MediaMixin, TemplateView):
'help_text': _('Services are applications using this central authority for identities.'),
'order': 1,
'permission': 'authentic2.search_service',
'skip_menu': True,
'slug': 'services',
},
]
@ -715,11 +728,14 @@ class MenuJson(HomepageView):
for entry in self.get_homepage_entries():
if entry.get('slug') == 'journal':
continue
if entry.get('skip_menu', False):
continue
menu_entries.append(
{
'label': str(entry['label']),
'slug': entry.get('slug', ''),
'url': request.build_absolute_uri(str(entry['href'])),
'sub': entry.get('sub', False),
}
)
return menu_entries

View File

@ -1322,3 +1322,20 @@ def test_manager_delete_oidc_claim(app, superuser):
resp = form.submit()
assert resp.location == reverse('a2-manager-service', kwargs={'service_pk': client.pk})
assert not OIDCClaim.objects.filter(client=client, name='claim', value='value', scopes='profile').exists()
def test_manager_menu_json(app, admin):
expected = [
{
'label': 'Identity management',
'slug': 'identity-management',
'url': 'http://testserver/manage/',
'sub': False,
},
{'label': 'Users', 'slug': 'users', 'url': 'http://testserver/manage/users/', 'sub': True},
{'label': 'Roles', 'slug': 'roles', 'url': 'http://testserver/manage/roles/', 'sub': True},
]
response = login(app, admin)
response = app.get('/manage/menu.json')
assert response.json == expected