Class: Whoosh::Auth::AccessControl

Inherits:
Object
  • Object
show all
Defined in:
lib/whoosh/auth/access_control.rb

Instance Method Summary collapse

Constructor Details

#initializeAccessControl

Returns a new instance of AccessControl.



6
7
8
# File 'lib/whoosh/auth/access_control.rb', line 6

def initialize
  @roles = {}
end

Instance Method Details

#check!(role, model) ⇒ Object



14
15
16
17
18
19
# File 'lib/whoosh/auth/access_control.rb', line 14

def check!(role, model)
  allowed = @roles[role]
  unless allowed && allowed.include?(model)
    raise Errors::ForbiddenError, "Model '#{model}' not allowed for role '#{role}'"
  end
end

#models_for(role) ⇒ Object



21
22
23
# File 'lib/whoosh/auth/access_control.rb', line 21

def models_for(role)
  @roles[role] || []
end

#role(name, models: []) ⇒ Object



10
11
12
# File 'lib/whoosh/auth/access_control.rb', line 10

def role(name, models: [])
  @roles[name] = models.dup.freeze
end