Coverage for core\middleware.py: 0%

13 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-10-17 16:50 +0800

1import uuid 

2from django.utils.deprecation import MiddlewareMixin 

3 

4class TenantMiddleware(MiddlewareMixin): 

5 """ 

6 Middleware that attaches tenant_id to the request object. 

7 Resolves tenant_id from: 

8 1. Header 'X-Tenant-ID' 

9 2. Authenticated user's current_organization_id 

10 """ 

11 def process_request(self, request): 

12 tenant_header = request.headers.get('X-Tenant-ID') 

13 if tenant_header: 

14 try: 

15 request.tenant_id = uuid.UUID(tenant_header) 

16 except ValueError: 

17 request.tenant_id = None 

18 elif hasattr(request, 'user') and request.user.is_authenticated: 

19 request.tenant_id = getattr(request.user, 'current_organization_id', None) 

20 else: 

21 request.tenant_id = None