Class: Toni::Permission

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_name, activities = []) ⇒ Permission



8
9
10
11
12
# File 'lib/toni/permission.rb', line 8

def initialize(resource_name, activities = [])
  @resource_name = resource_name
  @matchers = []
  @activities = activities
end

Instance Attribute Details

#activitiesObject (readonly)

Returns the value of attribute activities.



6
7
8
# File 'lib/toni/permission.rb', line 6

def activities
  @activities
end

#matchersObject (readonly)

Returns the value of attribute matchers.



6
7
8
# File 'lib/toni/permission.rb', line 6

def matchers
  @matchers
end

#resource_nameObject (readonly)

Returns the value of attribute resource_name.



6
7
8
# File 'lib/toni/permission.rb', line 6

def resource_name
  @resource_name
end

Instance Method Details

#add_matcher(method_name, matcher, is_attr = false) ⇒ Object



14
15
16
# File 'lib/toni/permission.rb', line 14

def add_matcher(method_name, matcher, is_attr = false)
  @matchers << PermissionMatcher.new(method_name, matcher, is_attr)
end

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



18
19
20
21
# File 'lib/toni/permission.rb', line 18

def permitted_to?(activity, res, options={})
  resource_name == (res.is_a?(Symbol) ? res : res.class.authorization_context) &&
    activities.include?(activity) && matches?(res)
end