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

Returns a new instance of 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

Returns:

  • (Boolean)


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

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