Paso de parámetros a método a before _filter


#1

Buenas. No sé si se podrá hacer ésto, pero ahí va…

Quiero tener controladores que sean accesibles sólo para usuarios 

con
roles concretos. Ahora tengo la cosa así:

def es_super_usuario?
  logged_in? && authorized? && self.current_usuario.rol_id <=10 ? 

true :
access_denied
end

def es_gestor?
  logged_in? && authorized? && self.current_usuario.rol_id <=20 ? 

true :
access_denied
end

y para cada controlador le pongo ésto:

class SuperUsuarioController < ApplicationController
 before_filter :es_super_usuario?
 #....
end

class GestorController < ApplicationController
 before_filter :es_gestor?
 #....
end

me gustaría saber si se puede hacer algo así como

def comprueba_permiso? nivel_permiso
  logged_in? && authorized? &&

self.current_usuario.rol_id<=nivel_permiso ? true : access_denied
end

para poder pasar en cada before_filter ésto:

before_filter :comprueba_permiso?(10)
before_filter :comprueba_permiso?(20)

Alguna sugerencia?

gracias


#2

On 5/8/07, Luis V. removed_email_address@domain.invalid wrote:

end

<=nivel_permiso ? true : access_denied

Puedes utilizar un bloque:

before_filter { comprueba_permiso? 10 }
before_filter { comprueba_permiso? 20 }

Lo único que pierdes es la posibilidad de utilizar posteriormente
skip_filter (pero en realidad no se utiliza tanto ese método).


#3

Muchas gracias por tu respuesta.

Aparte, precisamente hoy he visto esto:

http://snippets.dzone.com/posts/show/3989

Un saludo