Files
bugsink/ee/tenants/utils.py
Klaas van Schelven 354af7ea0a Fix issues as reported by bandit or mark as nosec
Nothing worrying, but good to have checked this regardless
and important to have a green pipeline.

Fix #175
2025-07-30 12:16:40 +02:00

43 lines
1.3 KiB
Python

from contextlib import contextmanager
from .base import get_tenant_subdomain, use_tenant_subdomain
from bugsink.utils import assert_
def add_tenant_subdomain_to_kwargs():
tenant_subdomain = get_tenant_subdomain()
assert_(tenant_subdomain is not None, "Must have tenant set to be able to pass this to snappea")
return {"TENANT_SUBDOMAIN": tenant_subdomain}
@contextmanager
def pop_tenant_subdomain_from_kwargs(args, kwargs):
if "TENANT_SUBDOMAIN" not in kwargs:
raise Exception("To run this task I need to have a tenant subdomain, can't find that")
tenant = kwargs.pop("TENANT_SUBDOMAIN")
with use_tenant_subdomain(tenant):
yield
class TenantBaseURL:
"""'lazy' evaluating drop-in for BASE_URL strings that fills in the TENANT on-demand; I've evaluated the current
uses of BASE_URL when writing this, forcing evaulation where needed (when not covered by __add__)."""
def __init__(self, format_domain):
self.format_domain = format_domain
def fmt(self):
return self.format_domain % get_tenant_subdomain()
def __add__(self, other):
return self.fmt() + other
def __str__(self):
return self.fmt()
def endswith(self, suffix):
# needed b/c BASE_URL is cleaned up w/ this helper
return self.fmt().endswith(suffix)