* root: initial rename * web: rename custom element prefix * root: rename external functions with pb_ prefix * root: fix formatting * root: replace domain with goauthentik.io * proxy: update path * root: rename remaining prefixes * flows: rename file extension * root: pbadmin -> akadmin * docs: fix image filenames * lifecycle: ignore migration files * ci: copy default config from current source before loading last tagged * *: new sentry dsn * tests: fix missing python3.9-dev package * root: add additional migrations for service accounts created by outposts * core: mark system-created service accounts with attribute * policies/expression: fix pb_ replacement not working * web: fix last linting errors, add lit-analyse * policies/expressions: fix lint errors * web: fix sidebar display on screens where not all items fit * proxy: attempt to fix proxy pipeline * proxy: use go env GOPATH to get gopath * lib: fix user_default naming inconsistency * docs: add upgrade docs * docs: update screenshots to use authentik * admin: fix create button on empty-state of outpost * web: fix modal submit not refreshing SiteShell and Table * web: fix height of app-card and height of generic icon * web: fix rendering of subtext * admin: fix version check error not being caught * web: fix worker count not being shown * docs: update screenshots * root: new icon * web: fix lint error * admin: fix linting error * root: migrate coverage config to pyproject
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
"""Outpost forms"""
 | 
						|
 | 
						|
from django import forms
 | 
						|
from django.utils.translation import gettext_lazy as _
 | 
						|
 | 
						|
from authentik.admin.fields import CodeMirrorWidget, YAMLField
 | 
						|
from authentik.crypto.models import CertificateKeyPair
 | 
						|
from authentik.outposts.models import (
 | 
						|
    DockerServiceConnection,
 | 
						|
    KubernetesServiceConnection,
 | 
						|
    Outpost,
 | 
						|
    OutpostServiceConnection,
 | 
						|
)
 | 
						|
from authentik.providers.proxy.models import ProxyProvider
 | 
						|
 | 
						|
 | 
						|
class OutpostForm(forms.ModelForm):
 | 
						|
    """Outpost Form"""
 | 
						|
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        super().__init__(*args, **kwargs)
 | 
						|
        self.fields["providers"].queryset = ProxyProvider.objects.all()
 | 
						|
        self.fields[
 | 
						|
            "service_connection"
 | 
						|
        ].queryset = OutpostServiceConnection.objects.select_subclasses()
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = Outpost
 | 
						|
        fields = [
 | 
						|
            "name",
 | 
						|
            "type",
 | 
						|
            "service_connection",
 | 
						|
            "providers",
 | 
						|
            "_config",
 | 
						|
        ]
 | 
						|
        widgets = {
 | 
						|
            "name": forms.TextInput(),
 | 
						|
            "_config": CodeMirrorWidget,
 | 
						|
        }
 | 
						|
        field_classes = {
 | 
						|
            "_config": YAMLField,
 | 
						|
        }
 | 
						|
        labels = {"_config": _("Configuration")}
 | 
						|
 | 
						|
 | 
						|
class DockerServiceConnectionForm(forms.ModelForm):
 | 
						|
    """Docker service-connection form"""
 | 
						|
 | 
						|
    def __init__(self, *args, **kwargs):
 | 
						|
        super().__init__(*args, **kwargs)
 | 
						|
        self.fields["tls_authentication"].queryset = CertificateKeyPair.objects.filter(
 | 
						|
            key_data__isnull=False
 | 
						|
        )
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = DockerServiceConnection
 | 
						|
        fields = ["name", "local", "url", "tls_verification", "tls_authentication"]
 | 
						|
        widgets = {
 | 
						|
            "name": forms.TextInput,
 | 
						|
            "url": forms.TextInput,
 | 
						|
        }
 | 
						|
        labels = {
 | 
						|
            "url": _("URL"),
 | 
						|
            "tls_verification": _("TLS Verification Certificate"),
 | 
						|
            "tls_authentication": _("TLS Authentication Certificate"),
 | 
						|
        }
 | 
						|
 | 
						|
 | 
						|
class KubernetesServiceConnectionForm(forms.ModelForm):
 | 
						|
    """Kubernetes service-connection form"""
 | 
						|
 | 
						|
    class Meta:
 | 
						|
 | 
						|
        model = KubernetesServiceConnection
 | 
						|
        fields = [
 | 
						|
            "name",
 | 
						|
            "local",
 | 
						|
            "kubeconfig",
 | 
						|
        ]
 | 
						|
        widgets = {
 | 
						|
            "name": forms.TextInput,
 | 
						|
            "kubeconfig": CodeMirrorWidget,
 | 
						|
        }
 | 
						|
        field_classes = {
 | 
						|
            "kubeconfig": YAMLField,
 | 
						|
        }
 |