class Micro::Authorization::Permissions::Model

Attributes

context[R]
role[R]

Public Class Methods

new(permissions, context) click to toggle source
# 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

Public Instance Methods

to(features) click to toggle source
# File lib/micro/authorization/permissions/model.rb, line 15
def to(features)
  Permissions::Checker.for(@role, features)
end
to?(features = nil) click to toggle source
# 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) click to toggle source
# File lib/micro/authorization/permissions/model.rb, line 29
def to_not?(features = nil)
  !to?(features)
end