Projet

Général

Profil

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

Benjamin Dauvergne, 23 octobre 2013 14:14

Télécharger (3,87 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
 po/fr.po                 |   13 +++++++++++++
 wcs/qommon/ident/idp.ptl |   16 +++++++++++++---
 2 files changed, 26 insertions(+), 3 deletions(-)
po/fr.po
2943 2943
msgid "Hide this provider from user lists"
2944 2944
msgstr "Cacher ce fournisseur de la liste présentée à l'utilisateur"
2945 2945

  
2946
#: ../wcs/qommon/ident/idp.ptl:293
2947
msgid "Administrator attribute matching rules"
2948
msgstr "Règle de correspondance des attributs pour le status administrateur"
2949

  
2950
#: ../wcs/qommon/ident/idp.ptl:295
2951
msgid ""
2952
"First row match attribute names, second is for matching attribute value. If "
2953
"no rule is given, admin flag is never set. Flag is set if any rule match."
2954
msgstr ""
2955
"La première colonne correspond au nom des attributs, la deuxième aux valeurs. "
2956
"Si aucune règle n'est configuré, le status administrateur n'est jamais attribué. "
2957
"Le statut est donné si n'importe laquelle des règles est validée."
2958

  
2946 2959
#: ../wcs/qommon/ident/idp.ptl:292 ../wcs/qommon/ident/idp.ptl:293
2947 2960
#: ../wcs/qommon/ident/idp.ptl:466 ../wcs/qommon/ident/idp.ptl:467
2948 2961
msgid "New Identity Provider"
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': '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
-