manager: provide an updated menu.json including main backoffice page (#66496)
This commit is contained in:
parent
09b1e27c1f
commit
d6bf65e441
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue