"""passbook SAML SP Forms""" from django import forms from django.contrib.admin.widgets import FilteredSelectMultiple from django.utils.translation import gettext as _ from passbook.admin.forms.source import SOURCE_FORM_FIELDS from passbook.providers.saml.utils import CertificateBuilder from passbook.sources.saml.models import SAMLSource class SAMLSourceForm(forms.ModelForm): """SAML Provider form""" def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) builder = CertificateBuilder() builder.build() self.fields['signing_cert'].initial = builder.certificate class Meta: model = SAMLSource fields = SOURCE_FORM_FIELDS + ['entity_id', 'idp_url', 'idp_logout_url', 'auto_logout', 'signing_cert'] labels = { 'entity_id': 'Entity ID', 'idp_url': 'IDP URL', 'idp_logout_url': 'IDP Logout URL', } widgets = { 'name': forms.TextInput(), 'policies': FilteredSelectMultiple(_('policies'), False), 'entity_id': forms.TextInput(), 'idp_url': forms.TextInput(), 'idp_logout_url': forms.TextInput(), }