Coverage for api\docs_access.py: 100.0%

10 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-08-30 20:58 +0200

1""" 

2Cierre de la documentacion de la API (/api/v1/docs/ y /api/v1/schema/). 

3 

4Quien no sea administrador recibe un 404, no un 403 ni una redireccion, esto es para que 

5no sepa que la ruta existe y hay docuemntacion detras. 

6""" 

7from functools import wraps 

8 

9from django.http import Http404 

10 

11 

12def staff_only(view): 

13 """ 

14 Deja pasar solo a un administrador con sesion abierta en el panel. 

15 

16 Administrador es el is_staff del usuario de django.contrib.auth, no una cuenta de la aplicacion 

17 """ 

18 @wraps(view) 

19 def wrapper(request, *args, **kwargs): 

20 user_account = getattr(request, 'user', None) 

21 

22 if not (user_account and user_account.is_active and user_account.is_staff): 

23 raise Http404 

24 

25 return view(request, *args, **kwargs) 

26 

27 return wrapper