Estamos utilizando el plugin acl_system [1] para gestionar los
permisos de acceso en un site que estamos desarrollando.
Este plugin permite definir la lógica de permisos de forma
declarativa, por ejemplo:
class CompanyController < ApplicationController
access_control [:edit, :unfilled_values] => ‘admin’ do |context|
{ :company_id => params[:id] }
end
Mi problema es que no puedo acceder a params desde el bloque que le
estoy pasando a access_control. Necesito pasar esa variable de
contexto para controlar el acceso a determinadas acciones del
controlador.
De momento lo he solucionado metiendo lógica de mi aplicación en
acl_system, lo cual me parece como poco super-feo.
–
David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo
access_control [:edit, :unfilled_values] => ‘admin’ do |context|
{ :company_id => params[:id] }
end
Mi problema es que no puedo acceder a params desde el bloque que le
estoy pasando a access_control. Necesito pasar esa variable de
contexto para controlar el acceso a determinadas acciones del
controlador.
Gracias Jaime, aunque en ese thread describen una solución para
restringir el acceso a determinados objetos al hacer un listado.
No se si me explico :-(, básicamente mi problema es que no puedo
pasarle al método access_control el id de un objeto porque ese id
viene en parámetros, supongo que es porque el contexto en el que se
ejecuta el bloque es distinto del contexto del controlador, por tanto
no existe el hash “params”
Este es el cachito de código problemático:
class CompanyController < ApplicationController
access_control [:edit, :unfilled_values] => ‘admin | contact’ do
|context|
aquí está mi problema, no tengo acceso a params[:id] desde aquí
context = { :company_id => params[:id] }
end
Gracias de nuevo
David A., el único desarrollador con una orden de alejamiento de
Jeffrey Zeldman Simplelogica.net, ahora con un 33,3% más de intromisión en listas de correo