class Ddr::Auth::Roles::RoleSetManager
Attributes
object[R]
role_set[RW]
Public Class Methods
new(object)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 8 def initialize(object) @object = object load end
Public Instance Methods
grant(*roles)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 13 def grant(*roles) granted = RoleSet.new(roles: roles) role_set.merge(granted) persist end
granted?(role)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 19 def granted?(role) if role.is_a?(Role) role_set.include?(role) else granted? Role.new(role) end end
replace(*roles)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 38 def replace(*roles) self.role_set = RoleSet.new(roles: roles) persist end
revoke(*roles)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 27 def revoke(*roles) revoked = RoleSet.new(roles: roles) role_set.roles -= revoked.roles persist end
revoke_all()
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 33 def revoke_all role_set.clear persist end
Protected Instance Methods
method_missing(name, *args, &block)
click to toggle source
Calls superclass method
# File lib/ddr/auth/roles/role_set_manager.rb, line 49 def method_missing(name, *args, &block) if role_set.respond_to?(name) return role_set.send(name, *args, &block) end super end
respond_to_missing?(name, include_all=false)
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 45 def respond_to_missing?(name, include_all=false) role_set.respond_to?(name, include_all) end
Private Instance Methods
load()
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 62 def load self.role_set = RoleSet.from_json(object.access_roles) end
persist()
click to toggle source
# File lib/ddr/auth/roles/role_set_manager.rb, line 58 def persist object.access_roles = role_set.to_json end