class Micro::Authorization::Policy

Public Class Methods

new(context, subject = nil, permissions: nil) click to toggle source
# File lib/micro/authorization/policy.rb, line 12
def initialize(context, subject = nil, permissions: nil)
  @context = context
  @subject = subject
  @permissions = permissions
end
type(klass) click to toggle source
# File lib/micro/authorization/policy.rb, line 6
def self.type(klass)
  return klass if klass < self

  raise ArgumentError, "policy must be a #{self.name}"
end

Public Instance Methods

method_missing(method, *args, **keyargs, &block) click to toggle source
Calls superclass method
# File lib/micro/authorization/policy.rb, line 18
def method_missing(method, *args, **keyargs, &block)
  return false if method =~ /\?\z/
  super(method)
end

Private Instance Methods

context() click to toggle source
# File lib/micro/authorization/policy.rb, line 25
def context; @context; end
current_user() click to toggle source
# File lib/micro/authorization/policy.rb, line 28
def current_user
  @current_user ||= context[:user] || context[:current_user]
end
Also aliased as: user
permissions() click to toggle source
# File lib/micro/authorization/policy.rb, line 27
def permissions; @permissions; end
subject() click to toggle source
# File lib/micro/authorization/policy.rb, line 26
def subject; @subject; end
user()
Alias for: current_user