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