fix(views): calling order to initial view method (#7918)

This commit is contained in:
Víctor Fernández Poyatos
2025-06-03 13:34:44 +02:00
committed by GitHub
parent 7a0549d39c
commit 9ee78fe65f
+7 -7
View File
@@ -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)