From 9ee78fe65f179887a0b134644d5205dc9bee3b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Fern=C3=A1ndez=20Poyatos?= Date: Tue, 3 Jun 2025 13:34:44 +0200 Subject: [PATCH] fix(views): calling order to initial view method (#7918) --- api/src/backend/api/base_views.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/api/src/backend/api/base_views.py b/api/src/backend/api/base_views.py index 54b020597f..60940733c2 100644 --- a/api/src/backend/api/base_views.py +++ b/api/src/backend/api/base_views.py @@ -47,8 +47,6 @@ class BaseViewSet(ModelViewSet): class BaseRLSViewSet(BaseViewSet): def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - # Ideally, this logic would be in the `.setup()` method but DRF view sets don't call it # https://docs.djangoproject.com/en/5.1/ref/class-based-views/base/#django.views.generic.base.View.setup if request.auth is None: @@ -63,6 +61,8 @@ class BaseRLSViewSet(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -115,8 +115,6 @@ class BaseTenantViewset(BaseViewSet): pass # Tenant might not exist, handle gracefully def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - if request.auth is None: raise NotAuthenticated @@ -129,6 +127,8 @@ class BaseTenantViewset(BaseViewSet): self._rls_cm = rls_transaction(value=user_id, parameter=POSTGRES_USER_VAR) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs) @@ -141,11 +141,9 @@ class BaseTenantViewset(BaseViewSet): class BaseUserViewset(BaseViewSet): def initial(self, request, *args, **kwargs): - super().initial(request, *args, **kwargs) - # TODO refactor after improving RLS on users if request.stream is not None and request.stream.method == "POST": - return + return super().initial(request, *args, **kwargs) if request.auth is None: raise NotAuthenticated @@ -158,6 +156,8 @@ class BaseUserViewset(BaseViewSet): self._rls_cm = rls_transaction(tenant_id) self._rls_cm.__enter__() + super().initial(request, *args, **kwargs) + def finalize_response(self, request, response, *args, **kwargs): response = super().finalize_response(request, response, *args, **kwargs)