authentik.tenants.middleware

 1from django.db.models import Value
 2from django_tenants.middleware import TenantMainMiddleware
 3from django_tenants.utils import get_public_schema_name
 4
 5from authentik.tenants.models import Domain, Tenant
 6
 7
 8class DefaultTenantMiddleware(TenantMainMiddleware):
 9    def get_tenant(self, domain_model: type[Domain], hostname: str) -> Tenant:
10        tenant = (
11            Tenant.objects.filter(domains__domain=hostname)
12            .annotate(default=Value(100))
13            .union(
14                Tenant.objects.filter(schema_name=get_public_schema_name()).annotate(
15                    default=Value(10)
16                )
17            )
18            .order_by("-default")
19            .first()
20        )
21        if tenant is None:
22            raise domain_model.DoesNotExist()
23        return tenant
class DefaultTenantMiddleware(django_tenants.middleware.main.TenantMainMiddleware):
 9class DefaultTenantMiddleware(TenantMainMiddleware):
10    def get_tenant(self, domain_model: type[Domain], hostname: str) -> Tenant:
11        tenant = (
12            Tenant.objects.filter(domains__domain=hostname)
13            .annotate(default=Value(100))
14            .union(
15                Tenant.objects.filter(schema_name=get_public_schema_name()).annotate(
16                    default=Value(10)
17                )
18            )
19            .order_by("-default")
20            .first()
21        )
22        if tenant is None:
23            raise domain_model.DoesNotExist()
24        return tenant
def get_tenant( self, domain_model: type[authentik.tenants.models.Domain], hostname: str) -> authentik.tenants.models.Tenant:
10    def get_tenant(self, domain_model: type[Domain], hostname: str) -> Tenant:
11        tenant = (
12            Tenant.objects.filter(domains__domain=hostname)
13            .annotate(default=Value(100))
14            .union(
15                Tenant.objects.filter(schema_name=get_public_schema_name()).annotate(
16                    default=Value(10)
17                )
18            )
19            .order_by("-default")
20            .first()
21        )
22        if tenant is None:
23            raise domain_model.DoesNotExist()
24        return tenant