Projet

Général

Profil

0001-manager-provide-an-updated-menu.json-including-main-.patch

Paul Marillonnet, 23 juin 2022 11:55

Télécharger (3,7 ko)

Voir les différences:

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

 src/authentic2/manager/views.py | 15 +++++++++++++++
 tests/test_manager.py           | 17 +++++++++++++++++
 2 files changed, 32 insertions(+)
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
-