Projet

Général

Profil

0004-qommon.ident.idp-allow-customizable-rules-to-set-is_.patch

Benjamin Dauvergne, 22 octobre 2013 00:12

Télécharger (2,79 ko)

Voir les différences:

Subject: [PATCH 4/6] qommon.ident.idp: allow customizable rules to set
 is_admin flag from SAML 2 attributes

refs #3852
 wcs/qommon/ident/idp.ptl |   16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
wcs/qommon/ident/idp.ptl
286 286
        form.add(FileWidget, 'clientcertificate', title = _('Client Key and Certificate'))
287 287
        form.add(CheckboxWidget, 'hide', title = _('Hide this provider from user lists'),
288 288
                required = False, value = instance.get('hide'))
289
        form.add(WidgetDict, 'admin-attributes',
290
                value = instance.get('admin-attributes', {
291
                    'local-admin': r'^true$',
292
                }),
293
                title=_('Administrator attribute matching rules'),
294
                element_value_type=StringWidget,
295
                hint=_('First row match attribute names, second is for matching '
296
                    'attribute value. If no rule is given, admin flag is never '
297
                    'set. Flag is set if any rule match.'))
289 298
        form.add_submit('submit', _('Submit'))
290 299
        return form
291 300

  
......
293 302
        get_response().breadcrumb.append(('new', _('New')))
294 303
        form = self.get_form()
295 304

  
296
        if not form.is_submitted() or form.has_errors():
305
        if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors():
297 306
            admin_html_top('settings', title = _('New Identity Provider'))
298 307
            '<h2>%s</h2>' % _('New Identity Provider')
299 308
            form.render()
......
351 360
            'cacertchain': cacertchain_fn,
352 361
            'clientcertificate': clientcertificate_fn,
353 362
        }
354
        cfg_idp[key_provider_id]['hide'] = form.get_widget('hide').parse()
363
        for key in ('hide', 'admin-attributes'):
364
            cfg_idp[key_provider_id][key] = form.get_widget(key).parse()
355 365
        idp = cfg_idp[key_provider_id]
356 366
        p = lasso.Provider(lasso.PROVIDER_ROLE_IDP,
357 367
                misc.get_abs_path(idp['metadata']),
......
570 580
    def edit [html] (self):
571 581
        form = AdminIDPDir.get_form(self.idp)
572 582

  
573
        if not form.is_submitted() or form.has_errors():
583
        if not ('submit' in get_request().form and form.is_submitted()) or form.has_errors():
574 584
            admin_html_top('settings', title = _('Edit Identity Provider'))
575 585
            '<h2>%s</h2>' % _('Edit Identity Provider')
576 586
            form.render()
577
-