class Fib::Permission
Attributes
bind[R]
container[RW]
display[R]
key[R]
name[R]
package[R]
Public Class Methods
new(key, options={})
click to toggle source
# File lib/fib/permission.rb, line 11 def initialize key, options={} @key = key.to_sym @name = options[:name] || key.to_s @package = options[:package] || Fib::ElementPackage.new @bind = options[:bind] || [] @display = options.key?(:display) ? options[:display] : true end
Public Instance Methods
bind_packages()
click to toggle source
# File lib/fib/permission.rb, line 19 def bind_packages return [] unless bind.present? || container.present? packages = [] bind.each do |b| p = container.permissions.permissions[b] next unless p.present? packages << p.package packages << p.bind_packages end packages.flatten end
bind_permission(*permission_keys)
click to toggle source
# File lib/fib/permission.rb, line 52 def bind_permission *permission_keys @bind << permission_keys.flatten.map(&:to_sym) @bind.flatten!.uniq! end
def_action(controller, action, &block)
click to toggle source
# File lib/fib/permission.rb, line 32 def def_action controller, action, &block @package << Fib::Element.create_action(controller, action, &block) end
def_key(key, &block)
click to toggle source
# File lib/fib/permission.rb, line 40 def def_key key, &block @package << Fib::Element.create_key(key, &block) end
def_url(url, &block)
click to toggle source
# File lib/fib/permission.rb, line 36 def def_url url, &block @package << Fib::Element.create_url(url, &block) end
display_off()
click to toggle source
# File lib/fib/permission.rb, line 48 def display_off @display = false end
display_on()
click to toggle source
# File lib/fib/permission.rb, line 44 def display_on @display = true end
inject_elements_permission()
click to toggle source
# File lib/fib/permission.rb, line 57 def inject_elements_permission package.origin_elements.values.flatten.each do |e| e.set_permission self end end