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