Class: Micro::Authorization::Permissions::Model

Inherits:
Object
  • Object
show all
Defined in:
lib/micro/authorization/permissions/model.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(permissions, context) ⇒ Model

Returns a new instance of Model.



9
10
11
12
13
# File 'lib/micro/authorization/permissions/model.rb', line 9

def initialize(permissions, context)
  @role = permissions.dup.freeze
  @cache = {}
  @context = Utils.downcased_strings(context).freeze
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



7
8
9
# File 'lib/micro/authorization/permissions/model.rb', line 7

def context
  @context
end

#roleObject (readonly)

Returns the value of attribute role.



7
8
9
# File 'lib/micro/authorization/permissions/model.rb', line 7

def role
  @role
end

Instance Method Details

#to(features) ⇒ Object



15
16
17
# File 'lib/micro/authorization/permissions/model.rb', line 15

def to(features)
  Permissions::Checker.for(@role, features)
end

#to?(features = nil) ⇒ Boolean

Returns:

  • (Boolean)


19
20
21
22
23
24
25
26
27
# File 'lib/micro/authorization/permissions/model.rb', line 19

def to?(features = nil)
  has_permission_to = to(features)

  cache_key = has_permission_to.features.inspect

  return @cache[cache_key] unless @cache[cache_key].nil?

  @cache[cache_key] = has_permission_to.context?(@context)
end

#to_not?(features = nil) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/micro/authorization/permissions/model.rb', line 29

def to_not?(features = nil)
  !to?(features)
end