Class: Toni::Role

Inherits:
Object
  • Object
show all
Defined in:
lib/toni/role.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(role_symbol) ⇒ Role



6
7
8
9
10
# File 'lib/toni/role.rb', line 6

def initialize(role_symbol)
  @role_symbol  = role_symbol
  @ancestors    = []
  @permissions  = []
end

Instance Attribute Details

#ancestorsObject (readonly)

Returns the value of attribute ancestors.



4
5
6
# File 'lib/toni/role.rb', line 4

def ancestors
  @ancestors
end

#permissionsObject (readonly)

Returns the value of attribute permissions.



4
5
6
# File 'lib/toni/role.rb', line 4

def permissions
  @permissions
end

#role_symbolObject (readonly)

Returns the value of attribute role_symbol.



4
5
6
# File 'lib/toni/role.rb', line 4

def role_symbol
  @role_symbol
end

Instance Method Details

#add_ancestor(role_symbol) ⇒ Object



12
13
14
# File 'lib/toni/role.rb', line 12

def add_ancestor(role_symbol)
  @ancestors << role_symbol unless @ancestors.include?(role_symbol)
end

#add_permission(permission) ⇒ Object



16
17
18
# File 'lib/toni/role.rb', line 16

def add_permission(permission)
  @permissions << permission
end

#permitted_to?(activity, res, options = {}) ⇒ Boolean



20
21
22
23
24
25
26
27
# File 'lib/toni/role.rb', line 20

def permitted_to?(activity, res, options={})
  unless res.is_a?(Symbol) || res.class.respond_to?(:authorization_context)
    raise Toni::NoAuthorizationContextProvidedError
  end
  current_permissions.any? do |p|
    p.permitted_to?(activity, res, options)
  end
end