Estoy a punto de poner una versión beta del sitio en el que estoy trabajando en la web. Necesita tener un código beta para restringir el acceso. El sitio está escrito en django.Haciendo un código beta para un sitio público de django
No quiero cambiar el sistema Auth básico para dar cabida a un código beta, y no me importa en particular que la seguridad del código beta esté revestida de hierro, solo que es un obstáculo significativo.
¿Cómo debo hacer esto? Es un proyecto bastante grande, por lo que agregar código a cada vista dista mucho de ser ideal.
Esa solución funciona bien. La clase middleware que terminó con esta esto:
from django.http import HttpResponseRedirect
class BetaMiddleware(object):
"""
Require beta code session key in order to view any page.
"""
def process_request(self, request):
if request.path != '/beta/' and not request.session.get('in_beta'):
return HttpResponseRedirect('%s?next=%s' % ('/beta/', request.path))
El problema con esto es que luego quien está tratando de obtener acceso se lleva a la página de inicio de sesión, en lugar de a una página para ingresar un código beta. La página de inicio de sesión tiene todos los menús y ui a su alrededor. Me gustaría mantener esas cosas en privado por ahora. – defrex
@defrex, haga su propio decorador de login_required que envuelve la versión incorporada de Django. Cuando salga a la luz, simplemente reemplácelo por Django por completo. –