A tienen varios controladores con el espacio de nombres Admin. Quiero restringir el acceso a estos a menos que el usuario sea un administrador. ¿Hay alguna manera de hacer esto usando CanCan sin tener que llamar sin autorización! en cada método de cada controlador?Autorización de administración con CanCan
8
A
Respuesta
8
Agregue un controlador de aplicación a su espacio de nombre y un filtro anterior al mismo.
class ApplicationController < ActionController::Base
end
class Admin::ApplicationController < ApplicationController
# these goes in your namespace admin folder
before_filter :check_authorized
def check_authorized
redirect_to root_path unless can? :admin, :all
end
end
class SomeadminController < Admin::ApplicationController
def some_action
# do_stuff
end
end
0
ahora rails_admin tiene soporte completo con Cancan, usted lo puede encontrar en su sitio web oficial, hay una página wiki para este tema:
1
La página Admin Namespaces wiki para las listas CanCan a cabo varias soluciones a este problema.
- Como @mark sugirió, tenga un controlador base para administradores que verifique la autorización para cada acción.
- Puede que no necesite usar CanCan en absoluto para esto si todo lo que necesita es verificar que los usuarios tengan una bandera
admin
.
- Puede que no necesite usar CanCan en absoluto para esto si todo lo que necesita es verificar que los usuarios tengan una bandera
- Para el manejo de los administradores de manera diferente el uno del otro (a diferencia de forma diferente a los usuarios regulares solamente), consideran una clase separada
AdminAbility
(esto es un poco fuera de tema, pero podría resultar relevante).
Cuestiones relacionadas
- 1. Autorización de rieles con CanCan Problema
- 2. Autorización en Rails 3.1: CanCan, CanTango, declarative_authorization?
- 3. Autorización de contexto con el uso de CanCan
- 4. Biblioteca de autorización Java como "CanCan" para Ruby on Rails
- 5. controladores de Autorización de espacios de nombres y anidadas utilizando CanCan
- 6. ¿Cómo puedo usar RSpec para probar el código de respuesta en una autorización fallida de CanCan?
- 7. Diseñar/Cancan/Rolify juntos
- 8. CanCan y controladores sin modelos
- 9. Cancan accessible_by
- 10. Rieles: Autorización con Authlogic
- 11. Autorización básica de Tomcat
- 12. ¿Cómo hacer la paginación con cancan?
- 13. ASP.NET MVC - Autorización dinámica
- 14. Rspec, CanCan e idear
- 15. Mongoid y CanCan
- 16. Herramienta de administración MySQL con administración foránea de claves extranjeras
- 17. Error de CanCan 'rol de método no definido?' Diseñar con
- 18. de autorización de Google Plus con Symfony2
- 19. Solicitud de servicio web con autorización básica vía proxy con autorización NTLM no funciona
- 20. HTTP Spec: cabeceras Autorización proxy y autorización
- 21. ¿Cómo integrar CanCan con múltiples modelos de diseño?
- 22. ¿Cómo hacer pruebas de integración con RSpec y Devise/CanCan?
- 23. vistas de pruebas que utilizan CanCan y diseñar con RSpec
- 24. Las acciones personalizadas de CanCan no funcionan con los bloques
- 25. Permisos de serialización (por ejemplo, CanCan) con active_model_serializers
- 26. cancan skip_authorization_check para autenticación Devise
- 27. joya CanCan para MVC NET
- 28. CanCan load_and_authorize_resource triggers Forbidden Attributes
- 29. Servicio de Autorización Centralizada?
- 30. ¿Se supone que debo usar CanCan con Devise?
¿Mencionó rails_admin? –
sí, tienes razón, no mencionó rails_admin. No sugiero usar rails_admin ya que no es tan bueno como pensaba. –