module Fib::Additions::TargeterAddition

Public Instance Methods

add_permissions(*permission_keys) click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 33
def add_permissions *permission_keys
  new_permissions = fib_container.permissions.extract_by_keys permission_keys
  @permissions += new_permissions
  save_permissions
end
clear_permissions() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 45
def clear_permissions
  fib_container.fpa.clear fib_redis_key
  @permissions = nil
end
create_permissions(*permission_keys) click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 22
def create_permissions *permission_keys
  clear_permissions
  new_permissions permission_keys
  save_permissions
end
del_permissions(*permission_keys) click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 39
def del_permissions *permission_keys
  del_permissions = fib_container.permissions.extract_by_keys permission_keys
  @permissions -= del_permissions
  save_permissions
end
fib_identify() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 58
def fib_identify
  raise UnSetTargeterIdentify, "Please rewrite [fib_identify] method and set only sign in #{self.class.name}" unless respond_to? :id
  id
end
fib_redis_key() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 54
def fib_redis_key
  "Fib:#{fib_container.key}:#{self.class.name}:#{fib_identify}"
end
get_persistence_permissions() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 50
def get_persistence_permissions
  fib_container.restore_permissions(fib_redis_key)
end
new_permissions(*permission_keys) click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 28
def new_permissions *permission_keys
  permission_keys = [permission_keys].flatten
  @permissions = fib_container.permissions.extract_by_keys permission_keys
end
permissions() click to toggle source

最终权限来源自于权限范围与持久化权限的并集

# File lib/fib/additions/targeter_addition.rb, line 10
def permissions
  @permissions ||= permissions_scope & (get_persistence_permissions || Fib::PermissionsCollection.new)
end
permissions_scope() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 14
def permissions_scope
  fib_inherit.permissions
end
save_permissions() click to toggle source
# File lib/fib/additions/targeter_addition.rb, line 18
def save_permissions
  fib_container.fpa.save fib_redis_key, permissions.keys
end