hospital-management/core/middleware.py
Marwan Alwali ab2c4a36c5 update
2025-10-02 10:13:03 +03:00

68 lines
2.0 KiB
Python

# """
# Tenant middleware for multi-tenancy support.
# """
#
# from django.http import Http404
# from django.shortcuts import get_object_or_404
# from .models import Tenant
#
#
# class TenantMiddleware:
# """
# Middleware to handle tenant resolution and context.
# """
#
# def __init__(self, get_response):
# self.get_response = get_response
#
# def __call__(self, request):
# # Skip tenant resolution for admin and API endpoints
# if request.path.startswith('/admin/') or request.path.startswith('/api/'):
# response = self.get_response(request)
# return response
#
# # Get tenant from subdomain or header
# tenant = self.get_tenant(request)
#
# if tenant:
# request.tenant = tenant
# else:
# # For development, use the first available tenant
# try:
# request.tenant = Tenant.objects.filter(is_active=True).first()
# except Tenant.DoesNotExist:
# request.tenant = None
#
# response = self.get_response(request)
# return response
#
# def get_tenant(self, request):
# """
# Resolve tenant from request.
# """
# # Try to get tenant from subdomain
# host = request.get_host()
# if '.' in host:
# subdomain = host.split('.')[0]
# try:
# return Tenant.objects.get(
# name__iexact=subdomain,
# is_active=True
# )
# except Tenant.DoesNotExist:
# pass
#
# # Try to get tenant from header (for API calls)
# tenant_id = request.headers.get('X-Tenant-ID')
# if tenant_id:
# try:
# return Tenant.objects.get(
# tenant_id=tenant_id,
# is_active=True
# )
# except Tenant.DoesNotExist:
# pass
#
# return None
#