1 |
1 |
# authentic2 - versatile identity manager
|
2 |
|
# Copyright (C) 2010-2019 Entr'ouvert
|
|
2 |
# Copyright (C) 2010-2020 Entr'ouvert
|
3 |
3 |
#
|
4 |
4 |
# This program is free software: you can redistribute it and/or modify it
|
5 |
5 |
# under the terms of the GNU Affero General Public License as published
|
... | ... | |
14 |
14 |
# You should have received a copy of the GNU Affero General Public License
|
15 |
15 |
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
16 |
16 |
|
|
17 |
from django import forms
|
17 |
18 |
from django.contrib import admin
|
18 |
19 |
|
|
20 |
from authentic2.attributes_ng.engine import get_attribute_names
|
|
21 |
from authentic2.forms.widgets import DatalistTextInput
|
|
22 |
|
19 |
23 |
from . import models
|
20 |
24 |
|
21 |
25 |
|
|
26 |
|
|
27 |
class OIDCClaimMappingForm(forms.ModelForm):
|
|
28 |
def __init__(self, *args, **kwargs):
|
|
29 |
super(OIDCClaimMappingForm, self).__init__(*args, **kwargs)
|
|
30 |
claim_widget = self.fields['claim'].widget
|
|
31 |
# fill datalist with standard claims from
|
|
32 |
# https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims
|
|
33 |
claim_widget.data = ('sub', 'name', 'given_name', 'family_name', 'nickname'
|
|
34 |
'preferred_username', 'profile', 'picture', 'website', 'email',
|
|
35 |
'email_verified', 'gender', 'birthdate', 'zoneinfo', 'locale',
|
|
36 |
'phone_number', 'phone_number_verified', 'address',
|
|
37 |
'updated_at')
|
|
38 |
claim_widget.name = 'list__oidcclaim-mapping-inline'
|
|
39 |
claim_widget.attrs.update({'list': 'list__oidcclaim-mapping-inline'})
|
|
40 |
|
|
41 |
class Meta:
|
|
42 |
model = models.OIDCClaimMapping
|
|
43 |
fields = [
|
|
44 |
'claim', 'attribute', 'verified', 'required', 'idtoken_claim',
|
|
45 |
]
|
|
46 |
readonly_fields = ['created', 'modified']
|
|
47 |
widgets = {
|
|
48 |
'claim': DatalistTextInput,
|
|
49 |
}
|
|
50 |
|
|
51 |
|
22 |
52 |
class OIDCClaimMappingInline(admin.TabularInline):
|
23 |
53 |
model = models.OIDCClaimMapping
|
24 |
|
fields = ['claim', 'attribute', 'verified', 'required', 'idtoken_claim', 'created', 'modified']
|
25 |
|
readonly_fields = ['created', 'modified']
|
|
54 |
form = OIDCClaimMappingForm
|
|
55 |
extra = 3
|
26 |
56 |
|
27 |
57 |
|
28 |
58 |
class OIDCProviderAdmin(admin.ModelAdmin):
|
29 |
|
-
|