auth_oidc: configure claims widget through subclass (#53442)

This commit is contained in:
Valentin Deniaud 2022-09-20 14:00:42 +02:00
parent b524ae206f
commit cf5132d72f
1 changed files with 9 additions and 6 deletions

View File

@ -32,13 +32,12 @@ class OIDCProviderEditForm(forms.ModelForm):
self.fields['ou'].empty_label = None
class OIDCClaimMappingForm(forms.ModelForm):
class OIDCClaimTextInput(DatalistTextInput):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
claim_widget = self.fields['claim'].widget
# fill datalist with standard claims from
# https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
claim_widget.data = (
self.data = (
'sub',
'name',
'given_name',
@ -59,9 +58,13 @@ class OIDCClaimMappingForm(forms.ModelForm):
'address',
'updated_at',
)
claim_widget.name = 'list__oidcclaim-mapping-inline'
claim_widget.attrs.update({'list': 'list__oidcclaim-mapping-inline'})
self.name = 'list__oidcclaim-mapping-inline'
self.attrs.update({'list': 'list__oidcclaim-mapping-inline'})
class OIDCClaimMappingForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.fields['attribute'].widget = SelectAttributeWidget()
class Meta:
@ -75,5 +78,5 @@ class OIDCClaimMappingForm(forms.ModelForm):
]
readonly_fields = ['created', 'modified']
widgets = {
'claim': DatalistTextInput,
'claim': OIDCClaimTextInput,
}