auth_oidc: configure claims widget through subclass (#53442)
This commit is contained in:
parent
b524ae206f
commit
cf5132d72f
|
@ -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,
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue