Class: AccessSchema::Privilege

Inherits:
Object
  • Object
show all
Defined in:
lib/access_schema/privilege.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, roles, &block) ⇒ Privilege



5
6
7
8
9
10
# File 'lib/access_schema/privilege.rb', line 5

def initialize(name, roles, &block)
  @name = name
  @roles = roles
  @block = block
  @expectations = []
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



3
4
5
# File 'lib/access_schema/privilege.rb', line 3

def name
  @name
end

Instance Method Details

#add_expectation(expectation) ⇒ Object



12
13
14
# File 'lib/access_schema/privilege.rb', line 12

def add_expectation(expectation)
  @expectations << expectation
end

#allow?(roles) ⇒ Boolean



16
17
18
19
20
21
# File 'lib/access_schema/privilege.rb', line 16

def allow?(roles)
  (@roles & roles).size > 0 || begin
    checklist = @expectations.select { |exp| exp.for?(roles) }
    checklist.length > 0 && checklist.all? { |exp| yield(exp) }
  end
end