Projet

Général

Profil

0001-backoffice-remove-users-roles-from-menus-if-roles-ar.patch

Frédéric Péters, 20 juillet 2019 14:34

Télécharger (2,98 ko)

Voir les différences:

Subject: [PATCH] backoffice: remove users/roles from menus if roles are
 managed by IdP (#34972)

 tests/test_admin_pages.py | 22 ++++++++++++++++++++++
 wcs/admin/roles.py        |  5 ++++-
 wcs/backoffice/root.py    |  4 ++--
 3 files changed, 28 insertions(+), 3 deletions(-)
tests/test_admin_pages.py
3360 3360
    resp = app.get('/backoffice/workflows/')
3361 3361
    assert 'Unused workflows' in resp.body
3362 3362

  
3363
def test_users_roles_menu_entries(pub):
3364
    create_superuser(pub)
3365
    app = login(get_app(pub))
3366
    resp = app.get('/backoffice/')
3367
    assert 'Users' in resp.body
3368
    assert 'Roles' in resp.body
3369
    resp = app.get('/backoffice/menu.json')
3370
    assert 'Users' in [x['label'] for x in resp.json]
3371
    assert 'Roles' in [x['label'] for x in resp.json]
3372

  
3373
    # don't include users/roles in menu if roles are managed by an external
3374
    # identity provider.
3375
    pub.cfg['sp'] = {'idp-manage-roles': True}
3376
    pub.write_cfg()
3377

  
3378
    resp = app.get('/backoffice/')
3379
    assert 'Users' not in resp.body
3380
    assert 'Roles' not in resp.body
3381
    resp = app.get('/backoffice/menu.json')
3382
    assert 'Users' not in [x['label'] for x in resp.json]
3383
    assert 'Roles' not in [x['label'] for x in resp.json]
3384

  
3363 3385
def test_users(pub):
3364 3386
    create_superuser(pub)
3365 3387
    app = login(get_app(pub))
wcs/admin/roles.py
18 18
from quixote.directory import Directory
19 19
from quixote.html import TemplateIO, htmltext
20 20

  
21
from qommon import _
21
from qommon import _, get_cfg
22 22
from qommon import errors
23 23
from qommon.form import *
24 24

  
......
198 198

  
199 199
    _q_exports = ["", "new"]
200 200

  
201
    def is_visible(self, *args):
202
        return not(get_cfg('sp', {}).get('idp-manage-roles'))
203

  
201 204
    def _q_index(self):
202 205
        get_response().breadcrumb.append(('roles/', _('Roles')))
203 206
        html_top('roles', title = _('Roles'))
wcs/backoffice/root.py
57 57
        ('management/', N_('Management')),
58 58
        ('forms/', N_('Forms Workshop')),
59 59
        ('workflows/', N_('Workflows Workshop')),
60
        ('users/', N_('Users')),
61
        ('roles/', N_('Roles')),
60
        ('users/', N_('Users'), roles.is_visible),
61
        ('roles/', N_('Roles'), roles.is_visible),
62 62
        ('categories/', N_('Categories')),
63 63
        ('bounces/', N_('Bounces'), bounces.is_visible),
64 64
        ('settings/', N_('Settings')),
65
-