tutorial sesiones rails gema fichas administrador ruby-on-rails activeadmin

ruby-on-rails - sesiones - gema devise



Cómo limitar el acceso al administrador activo a los usuarios administradores (2)

En config/initializers/active_admin.rb tiene dicha configuración:

config.authentication_method = :authenticate_admin_user!

así que si creas un método llamado authenticate_admin_user! en el ApplicationController, entonces ActiveAdmin verificará si el usuario puede ir a las páginas de administración o no. Me gusta esto:

# restrict access to admin module for non-admin users def authenticate_admin_user! raise SecurityError unless current_user.try(:admin?) end

y rescate de esa excepción en ApplicationController (o puede redirigir dentro del método authenticate_admin_user! )

rescue_from SecurityError do |exception| redirect_to root_url end

Y una cosa más pequeña, si no tiene admin_users, sería bueno cambiar esta línea en config/initializers/active_admin.rb :

config.current_user_method = :current_user

Y con el dispositivo, es posible que desee que la ruta predeterminada sea diferente para los usuarios admin / non-admin, de modo que pueda definir el método after_sign_in_path_for en el controlador

# path for redirection after user sign_in, depending on user role def after_sign_in_path_for(user) user.admin? ? admin_dashboard_path : root_path end

Quiero que solo mis usuarios que tienen su atributo is_admin establecido en true para poder acceder a mi administrador activo.

¿Cómo debería hacer esto?

Los usuarios "normales" solo deben poder iniciar sesión en el sitio, no al administrador activo.


Para los usuarios "normales", debe escribir una lógica separada para iniciar sesión en el sitio o tal vez no entendí por qué quiere permitir que los usuarios inicien sesión a través del administrador activo. Administrador activo usando un devise , solo crea otro modelo llamado User .