add management command to create a tenant

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
Jens Langhammer 2024-01-16 01:07:41 +01:00
parent eb02c448aa
commit 39d13c0447
No known key found for this signature in database
2 changed files with 31 additions and 0 deletions

View File

@ -0,0 +1,31 @@
"""authentik add tenant command"""
from django.core.management.base import BaseCommand
from django.utils.text import slugify
from structlog.stdlib import get_logger
from authentik.lib.config import CONFIG
from authentik.tenants.models import Domain, Tenant
LOGGER = get_logger()
class Command(BaseCommand):
"""Add tenant"""
def add_arguments(self, parser):
parser.add_argument("--domain", nargs="+", type=str)
parser.add_argument(
"name",
type=str,
)
def handle(self, *args, **options):
"""Add tenant"""
if not CONFIG.get_bool("tenants.enabled"):
self.stderr.write("Tenant not enabled")
return
tenant = Tenant.objects.create(name=options["name"], schema_name=slugify(options["name"]))
LOGGER.info("Created tenant", uuid=str(tenant.pk))
for domain in options["domain"]:
Domain.objects.create(tenant=tenant, domain=domain)
LOGGER.info("Created domain", domain=domain)