En mi aplicación Django, tengo ciertos permisos que los usuarios necesitan para acceder a ciertas vistas (usando django.contrib.auth
). Esto funciona bien, usando el decorador @permission_required
en las funciones de mi vista.Django: ¿Aplicar permisos en el despachador de URL?
Sin embargo, algunos de mis URL resolver a puntos de vista que no he escrito, como la incorporada en django.contrib.auth.views.password_change
, como en el siguiente urls.py
:
urlpatterns = patterns(
(r'^$', "users.views.index"),
(r'^password_change/$', 'django.contrib.auth.views.password_change'))
En este caso, no tengo dónde aplicar mi @permission_required
decorador - ¿o no? ¿Hay alguna forma de aplicar una restricción de permisos en el nivel de despachador de URL?
¿Cómo usarías 'permission_required' de la misma manera? Específicamente, ¿cómo le pasarías el argumento del nombre del permiso? –
@Manoj: echa un vistazo a esta sección de la documentación: http://docs.djangoproject.com/en/dev/topics/auth/#limiting-access-to-generic-views la idea es escribir un envoltorio delgado (con permission_required decorator) alrededor de la vista genérica, y apunte su urlconf a ese contenedor ... – Hoff
Eso es lo que hice en mi respuesta. Solo quería saber si había otra forma de hacerlo. Gracias. –