Projet

Général

Profil

« Précédent | Suivant » 

Révision 80784d04

Ajouté par Frédéric Péters il y a plus de 5 ans

do not expose legacy features (#28512)

Voir les différences:

auquotidien/modules/admin.py
85 85
        form.add(SingleSelectWidget, 'forms', title = _('Admin role for forms'),
86 86
                value = permissions_cfg.get('forms', None),
87 87
                options = [(None, _('Nobody'), None)] + get_user_roles())
88
        form.add(SingleSelectWidget, 'events', title = _('Admin role for events'),
89
                value = permissions_cfg.get('events', None),
90
                options = [(None, _('Nobody'), None)] + get_user_roles())
91
        form.add(SingleSelectWidget, 'links', title = _('Admin role for links'),
92
                value = permissions_cfg.get('links', None),
93
                options = [(None, _('Nobody'), None)] + get_user_roles())
94
        form.add(SingleSelectWidget, 'announces', title = _('Admin role for announces'),
95
                value = permissions_cfg.get('announces', None),
96
                options = [(None, _('Nobody'), None)] + get_user_roles())
97
        form.add(SingleSelectWidget, 'payments', title = _('Admin role for payments'),
98
                value = permissions_cfg.get('payments', None),
99
                options = [(None, _('Nobody'), None)] + get_user_roles())
100
        form.add(SingleSelectWidget, 'strongbox', title = _('Admin role for strongbox'),
101
                value = permissions_cfg.get('strongbox', None),
102
                options = [(None, _('Nobody'), None)] + get_user_roles())
88
        if get_publisher().has_site_option('auquotidien-events'):
89
            form.add(SingleSelectWidget, 'events', title = _('Admin role for events'),
90
                    value = permissions_cfg.get('events', None),
91
                    options = [(None, _('Nobody'), None)] + get_user_roles())
92
        if get_publisher().has_site_option('auquotidien-links'):
93
            form.add(SingleSelectWidget, 'links', title = _('Admin role for links'),
94
                    value = permissions_cfg.get('links', None),
95
                    options = [(None, _('Nobody'), None)] + get_user_roles())
96
        if get_publisher().has_site_option('auquotidien-announces'):
97
            form.add(SingleSelectWidget, 'announces', title = _('Admin role for announces'),
98
                    value = permissions_cfg.get('announces', None),
99
                    options = [(None, _('Nobody'), None)] + get_user_roles())
100
        if get_publisher().has_site_option('auquotidien-payments'):
101
            form.add(SingleSelectWidget, 'payments', title = _('Admin role for payments'),
102
                    value = permissions_cfg.get('payments', None),
103
                    options = [(None, _('Nobody'), None)] + get_user_roles())
104
        if get_publisher().has_site_option('auquotidien-strongbox'):
105
            form.add(SingleSelectWidget, 'strongbox', title = _('Admin role for strongbox'),
106
                    value = permissions_cfg.get('strongbox', None),
107
                    options = [(None, _('Nobody'), None)] + get_user_roles())
103 108
        form.add_submit('submit', _('Submit'))
104 109
        form.add_submit('cancel', _('Cancel'))
105 110

  
......
256 261

  
257 262
class SettingsDirectory(wcs.admin.settings.SettingsDirectory):
258 263
    def _q_index(self):
264
        if not (get_publisher().has_site_option('auquotidien-announces') or
265
                get_publisher().has_site_option('auquotidien-links') or
266
                get_publisher().has_site_option('auquotidien-events') or
267
                get_publisher().has_site_option('auquotidien-payments') or
268
                get_publisher().has_site_option('auquotidien-strongvox')):
269
            return super(SettingsDirectory, self)._q_index()
259 270
        r = TemplateIO(html=True)
260 271
        r += htmltext(super(SettingsDirectory, self)._q_index())
261 272
        r += htmltext('<div class="splitcontent-right">')
262 273
        r += htmltext('<div class="bo-block">')
263 274
        r += htmltext('<h2>%s</h2>') % _('Extra Options')
264 275
        r += htmltext('<ul>')
265
        r += htmltext('<li><a href="aq/announces">%s</a></li>') % _('Announces Options')
276
        if get_publisher().has_site_option('auquotidien-announces'):
277
            r += htmltext('<li><a href="aq/announces">%s</a></li>') % _('Announces Options')
266 278
        r += htmltext('<li><a href="aq/permissions">%s</a></li>') % _('Permissions')
267
        r += htmltext('<li><a href="aq/event_keywords">%s</a></li>') % _('Event Keywords')
268
        r += htmltext('<li><a href="aq/announce_themes">%s</a></li>') % _('Announce Themes')
279
        if get_publisher().has_site_option('auquotidien-events'):
280
            r += htmltext('<li><a href="aq/event_keywords">%s</a></li>') % _('Event Keywords')
281
        if get_publisher().has_site_option('auquotidien-announces'):
282
            r += htmltext('<li><a href="aq/announce_themes">%s</a></li>') % _('Announce Themes')
269 283
        if get_publisher().has_site_option('strongbox'):
270 284
            r += htmltext('<li><a href="aq/strongbox">%s</a></li>') % _('Strongbox Support')
271 285
        if get_publisher().has_site_option('clicrdv'):
auquotidien/modules/backoffice.py
18 18
CURRENT_USER = object()
19 19

  
20 20
def check_visibility(target, user=CURRENT_USER):
21
    if not get_publisher().has_site_option('auquotidien-%s' % target):
22
        # option not explicitely enabled, -> off.
23
        return False
21 24
    if user is CURRENT_USER:
22 25
        user = get_request().user
23 26
    if not user:
tests/test_admin_pages.py
65 65
def teardown_module(module):
66 66
    shutil.rmtree(pub.APP_DIR)
67 67

  
68
@pytest.fixture
69
def empty_siteoptions():
70
    open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w').close()
71

  
68 72
def test_with_superuser():
69 73
    create_superuser()
70 74
    app = login(get_app(pub))
......
85 89
    del pub.cfg['admin-permissions']
86 90
    pub.write_cfg()
87 91

  
88
def test_aq_permissions_panel():
92
def test_aq_permissions_panel(empty_siteoptions):
89 93
    create_superuser()
90 94
    app = login(get_app(pub))
95
    resp = app.get('/backoffice/settings/')
96
    assert not 'aq/permissions' in resp.body
97

  
98
    with open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w') as fd:
99
        if not pub.site_options.has_section('options'):
100
            pub.site_options.add_section('options')
101
        pub.site_options.set('options', 'auquotidien-links', 'true')
102
        pub.site_options.write(fd)
103

  
91 104
    resp = app.get('/backoffice/settings/')
92 105
    assert 'aq/permissions' in resp.body
93 106
    resp = app.get('/backoffice/settings/aq/permissions')
94 107

  
95
def test_menu_items():
108
def test_menu_items(empty_siteoptions):
96 109
    create_superuser()
97 110
    role = create_role()
98 111

  
112
    with open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w') as fd:
113
        if not pub.site_options.has_section('options'):
114
            pub.site_options.add_section('options')
115
        pub.site_options.set('options', 'auquotidien-links', 'true')
116
        pub.site_options.write(fd)
117

  
99 118
    for area in ('links', 'announces', 'events', 'links', 'payments'):
119

  
120
        with open(os.path.join(pub.app_dir, 'site-options.cfg'), 'w') as fd:
121
            if not pub.site_options.has_section('options'):
122
                pub.site_options.add_section('options')
123
            pub.site_options.set('options', 'auquotidien-%s' % area, 'true')
124
            pub.site_options.write(fd)
125

  
100 126
        pub.cfg['aq-permissions'] = {area: None}
101 127
        pub.write_cfg()
102 128

  

Formats disponibles : Unified diff