Projet

Général

Profil

0008-auth_oidc-configure-claims-widget-through-subclass-5.patch

Valentin Deniaud, 21 septembre 2022 12:47

Télécharger (1,97 ko)

Voir les différences:

Subject: [PATCH 08/10] auth_oidc: configure claims widget through subclass
 (#53442)

 src/authentic2_auth_oidc/forms.py | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)
src/authentic2_auth_oidc/forms.py
32 32
        self.fields['ou'].empty_label = None
33 33

  
34 34

  
35
class OIDCClaimMappingForm(forms.ModelForm):
35
class OIDCClaimTextInput(DatalistTextInput):
36 36
    def __init__(self, *args, **kwargs):
37 37
        super().__init__(*args, **kwargs)
38
        claim_widget = self.fields['claim'].widget
39 38
        # fill datalist with standard claims from
40 39
        # https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
41
        claim_widget.data = (
40
        self.data = (
42 41
            'sub',
43 42
            'name',
44 43
            'given_name',
......
59 58
            'address',
60 59
            'updated_at',
61 60
        )
62
        claim_widget.name = 'list__oidcclaim-mapping-inline'
63
        claim_widget.attrs.update({'list': 'list__oidcclaim-mapping-inline'})
61
        self.name = 'list__oidcclaim-mapping-inline'
62
        self.attrs.update({'list': 'list__oidcclaim-mapping-inline'})
63

  
64 64

  
65
class OIDCClaimMappingForm(forms.ModelForm):
66
    def __init__(self, *args, **kwargs):
67
        super().__init__(*args, **kwargs)
65 68
        self.fields['attribute'].widget = SelectAttributeWidget()
66 69

  
67 70
    class Meta:
......
75 78
        ]
76 79
        readonly_fields = ['created', 'modified']
77 80
        widgets = {
78
            'claim': DatalistTextInput,
81
            'claim': OIDCClaimTextInput,
79 82
        }
80
-