Class: Ddr::Auth::Roles::RoleSetManager

Inherits:
Object
  • Object
show all
Defined in:
lib/ddr/auth/roles/role_set_manager.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object) ⇒ RoleSetManager

Returns a new instance of RoleSetManager.



8
9
10
11
# File 'lib/ddr/auth/roles/role_set_manager.rb', line 8

def initialize(object)
  @object = object
  load
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args, &block) ⇒ Object (protected)



49
50
51
52
53
54
# 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

Instance Attribute Details

#objectObject (readonly)

Returns the value of attribute object.



5
6
7
# File 'lib/ddr/auth/roles/role_set_manager.rb', line 5

def object
  @object
end

#role_setObject

Returns the value of attribute role_set.



6
7
8
# File 'lib/ddr/auth/roles/role_set_manager.rb', line 6

def role_set
  @role_set
end

Instance Method Details

#grant(*roles) ⇒ Object



13
14
15
16
17
# 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) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
# 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) ⇒ Object



38
39
40
41
# 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) ⇒ Object



27
28
29
30
31
# 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_allObject



33
34
35
36
# File 'lib/ddr/auth/roles/role_set_manager.rb', line 33

def revoke_all
  role_set.clear
  persist
end