38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""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(),
 | 
						|
        }
 |