Un saludo, tengo una duda, lo que pasa es que quiero dar privilegios de usuario en Ruby on Rails, estoy haciendo simple sitio y quiero que el público en general solo pueda ver lo que son los términos, acerca de jade, galerías, etc. Pero usuarios con privilegios puedan ver además de lo anterior, otros links como para registrar productos, subir imágenes, etc. He leído acerca de CanCan pero no lo he probado ¿Algunas recomendaciones o una idea acerca de lo planteado de como realizarlo?. Muchas gracias
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
1 Respuesta
Saludos
vea yo uso has_secure_password para la autenticación de usuarios y yo en el application_controller.rb le aplico esto:
def sign_in(user)
cookies.permanent.signed[:user_id] = user.id
@current_user = user
end
def sign_out
cookies.delete(:user_id)
@current_user = nil
end
private
def signed_in?
!current_user.nil?
end
helper_method :signed_in?
def current_user
@current_user ||= User.find(cookies.signed[:user_id]) if cookies.signed[:user_id]
end
helper_method :current_user
def public_access
redirect_to :home if signed_in?
end
def private_access
redirect_to :login unless signed_in?
end
def authenticate_admin!
unless current_user.is_admin?
redirect_to(home_path, flash: { error: "You do not have sufficient permissions to access this page." })
end
end
y en cada controlador aplico esto, para los metodos que se necesita restringir:
before_action :private_access
before_action :authenticate_admin!, only: [:dashboard :users]
ahora en el nav yo aplico esto:
<% if current_user.is_admin? %>
<li><%= link_to "Users", users_path %></li>
<% end %>
y muestro los enlaces que puede acceder solo el admin.
En cuestión de cancan, los puedes aplicar también con rolify, una gemas para administrar roles, aquí le dejo un tutorial https://github.com/RolifyCommunity/rolify/wiki/Tutorial, pero si su aplicación es muy sencilla no es necesario manejar devise para la autenticación de usuarios.
Algo así lo puedes usar.
Saludos.
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 676871
- 1
- Jul 5, 2015
Sin Respuesta
-
- 63
- 0
- Oct 18
-
- 155
- 0
- Jul 9
-
- 515
- 1
- Mar 19
-
- 384
- 2
- Feb 26
-
- 4577
- 0
- Nov 7, 2023
-
- 473
- 0
- Sep 19, 2023
-
- 451
- 0
- Ago 21, 2023
-
- 632
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
- Mostrar datos del controlador en 1 label de la vista en Ruby on rails
- Test de autenticación usando JSON con POST en Rails
- Mostrar imagen dinamicamente en un panel en Ruby on rails.
- Upload de multiple archivos en rails usando carrierwave y postgreSQL array
- Problemas de imdentación usando HAML en Ruby On Rails
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
- Mostrar datos del controlador en 1 label de la vista en Ruby on rails
- Test de autenticación usando JSON con POST en Rails
- Mostrar imagen dinamicamente en un panel en Ruby on rails.
- Upload de multiple archivos en rails usando carrierwave y postgreSQL array
- Problemas de imdentación usando HAML en Ruby On Rails
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos
Todos los Usuarios Usuarios Nuevos
...