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
« 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/).
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
9from django.http import Http404
12def staff_only(view):
13 """
14 Deja pasar solo a un administrador con sesion abierta en el panel.
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)
22 if not (user_account and user_account.is_active and user_account.is_staff):
23 raise Http404
25 return view(request, *args, **kwargs)
27 return wrapper