0001-manager-provide-an-updated-menu.json-including-main-.patch
src/authentic2/manager/views.py | ||
---|---|---|
588 | 588 |
'custom_user.search_user', |
589 | 589 |
] |
590 | 590 |
default_entries = [ |
591 |
{ |
|
592 |
'class': 'icon-identity-management', |
|
593 |
'href': reverse_lazy('a2-manager-homepage'), |
|
594 |
'label': _('Identity management'), |
|
595 |
'order': -1, |
|
596 |
'sub': False, |
|
597 |
'slug': 'identity-management', |
|
598 |
}, |
|
591 | 599 |
{ |
592 | 600 |
'class': 'icon-organizational-units', |
593 | 601 |
'href': reverse_lazy('a2-manager-ous'), |
594 | 602 |
'label': _('Organizational units'), |
595 | 603 |
'order': -1, |
596 | 604 |
'permission': 'a2_rbac.search_organizationalunit', |
605 |
'skip_menu': True, |
|
597 | 606 |
'slug': 'organizational-units', |
598 | 607 |
}, |
599 | 608 |
{ |
... | ... | |
602 | 611 |
'label': _('Users'), |
603 | 612 |
'order': -1, |
604 | 613 |
'permission': 'custom_user.search_user', |
614 |
'sub': True, |
|
605 | 615 |
'slug': 'users', |
606 | 616 |
}, |
607 | 617 |
{ |
... | ... | |
610 | 620 |
'label': _('Roles'), |
611 | 621 |
'order': -1, |
612 | 622 |
'permission': 'a2_rbac.search_role', |
623 |
'sub': True, |
|
613 | 624 |
'slug': 'roles', |
614 | 625 |
}, |
615 | 626 |
{ |
... | ... | |
618 | 629 |
'label': _('Services'), |
619 | 630 |
'order': -1, |
620 | 631 |
'permission': 'authentic2.search_service', |
632 |
'skip_menu': True, |
|
621 | 633 |
'slug': 'services', |
622 | 634 |
}, |
623 | 635 |
] |
... | ... | |
701 | 713 |
for entry in self.get_homepage_entries(): |
702 | 714 |
if entry.get('slug') == 'journal': |
703 | 715 |
continue |
716 |
if entry.get('skip_menu', False): |
|
717 |
continue |
|
704 | 718 |
menu_entries.append( |
705 | 719 |
{ |
706 | 720 |
'label': str(entry['label']), |
707 | 721 |
'slug': entry.get('slug', ''), |
708 | 722 |
'url': request.build_absolute_uri(str(entry['href'])), |
723 |
'sub': entry.get('sub', False), |
|
709 | 724 |
} |
710 | 725 |
) |
711 | 726 |
return menu_entries |
tests/test_manager.py | ||
---|---|---|
1220 | 1220 |
resp = resp.form.submit() |
1221 | 1221 |
assert 'Test Service' in resp.text |
1222 | 1222 |
assert 'Example Service' not in resp.text |
1223 | ||
1224 | ||
1225 |
def test_manager_menu_json(app, admin): |
|
1226 |
expected = [ |
|
1227 |
{ |
|
1228 |
'label': 'Identity management', |
|
1229 |
'slug': 'identity-management', |
|
1230 |
'url': 'http://testserver/manage/', |
|
1231 |
'sub': False, |
|
1232 |
}, |
|
1233 |
{'label': 'Users', 'slug': 'users', 'url': 'http://testserver/manage/users/', 'sub': True}, |
|
1234 |
{'label': 'Roles', 'slug': 'roles', 'url': 'http://testserver/manage/roles/', 'sub': True}, |
|
1235 |
] |
|
1236 | ||
1237 |
response = login(app, admin) |
|
1238 |
response = app.get('/manage/menu.json') |
|
1239 |
assert response.json == expected |
|
1223 |
- |