51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""passbook Proxy Provider Forms"""
 | 
						|
from django import forms
 | 
						|
 | 
						|
from passbook.crypto.models import CertificateKeyPair
 | 
						|
from passbook.flows.models import Flow, FlowDesignation
 | 
						|
from passbook.providers.proxy.models import ProxyProvider
 | 
						|
 | 
						|
 | 
						|
class ProxyProviderForm(forms.ModelForm):
 | 
						|
    """Security Gateway Provider form"""
 | 
						|
 | 
						|
    instance: ProxyProvider
 | 
						|
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        super().__init__(*args, **kwargs)
 | 
						|
        self.fields["authorization_flow"].queryset = Flow.objects.filter(
 | 
						|
            designation=FlowDesignation.AUTHORIZATION
 | 
						|
        )
 | 
						|
        self.fields["certificate"].queryset = CertificateKeyPair.objects.filter(
 | 
						|
            key_data__isnull=False
 | 
						|
        )
 | 
						|
 | 
						|
    def save(self, *args, **kwargs):
 | 
						|
        actual_save = super().save(*args, **kwargs)
 | 
						|
        self.instance.set_oauth_defaults()
 | 
						|
        self.instance.save()
 | 
						|
        return actual_save
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = ProxyProvider
 | 
						|
        fields = [
 | 
						|
            "name",
 | 
						|
            "authorization_flow",
 | 
						|
            "internal_host",
 | 
						|
            "internal_host_ssl_validation",
 | 
						|
            "external_host",
 | 
						|
            "certificate",
 | 
						|
            "skip_path_regex",
 | 
						|
            "basic_auth_enabled",
 | 
						|
            "basic_auth_user_attribute",
 | 
						|
            "basic_auth_password_attribute",
 | 
						|
        ]
 | 
						|
        widgets = {
 | 
						|
            "name": forms.TextInput(),
 | 
						|
            "internal_host": forms.TextInput(),
 | 
						|
            "external_host": forms.TextInput(),
 | 
						|
            "basic_auth_user_attribute": forms.TextInput(),
 | 
						|
            "basic_auth_password_attribute": forms.TextInput(),
 | 
						|
        }
 |