Necesito verificar la autorización del usuario en cada vista de una de mis aplicaciones Django (no uso el sistema de autenticación incorporado de Django) y redireccionar al usuario a una página de "inicio de sesión por favor", si la autorización ha fallado.¿Cómo ejecutar un fragmento de código en cada vista en django?
código es el siguiente:
try:
admin_from_session = request.session['admin'];
admin = Administrator.objects.get(login = admin_from_session.login, password = admin_from_session.password, enabled=True);
except KeyError, Administrator.DoesNotExist:
return HttpResponseRedirect('/controlpanel/login')
La pregunta es: ¿cómo puedo ejecutar este código al principio de cada punto de vista, sin tener que repetir cada vez?
Si me gustaría escribir mi programa en PHP, me gustaría poner este código en archivo separado y escribir algo como esto al principio de cada página que requiere de autorización:
include("redirect_if_not_logged_in.inc.php");
Las soluciones que encontré fue:
- etiquetas de inclusión - no lo hacen, porque no puedo redirigir cualquier lugar desde allí
- función personalizada - tampoco funciona, debido a la misma razón .
La tarea parece trivial, pero no puedo encontrar una solución. Estaría muy agradecido por cualquier ayuda.
Almacenar la contraseña en la sesión no puede ser una buena idea. Aprende cómo usar el sistema de autenticación integrado. Para campos adicionales en sus usuarios, configure un modelo de perfil de usuario. –