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

2votos

Duda de privilegios en Ruby on Rails

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

1 Respuesta

3votos

nmenag Puntos3630

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.

0voto

x4mp73r comentado

Muchas gracias amigo, lo intentaré. Un cordial saludo

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta