Hola, había implementado un sistema de usuarios, roles y permisos
pero cuando lo he visto al cabo de unos días no me gusta nada, lo veo
poco DRY les comento un poco por encima el código a ver que les
parece.
los modelos
usuarios (n:n con roles)
. nombre
. password
roles (n:n con permisos)
. nombre
permisos
. nombre (create, read, update, delete)
al principio de cada controlador tengo un
before_filter :dime_permisos que me devuelve un hash con los permisos
dependiendo del rol del que dispone el usuario,
@permisos = {“create” => true, “read” => true, “update” => true,
“delete” => true }
o de esta otra forma si no tiene todos los permisos
@permisos = {“create” => true, “read” => true }
hasta aquí mas o menos no me parece mal como lo tengo solucionado, lo
que no me termina de agradar es como lo resuelvo luego en cada método
de cada controlador, las comprobaciones las hago de la siguiente manera
def index
if @permisos.has_key?( “read” )
…
end
end
def create
if @permisos.has_key?( “create” )
…
end
end
def destroy
if @permisos.has_key?( “delete” )
…
end
end
que les parece? les parece que no es una mala
solución?Muchas gracias por las sugerencias.
Saludos.