module Sand

Constants

VERSION

Public Class Methods

authorize(user, record, query) click to toggle source
# File lib/sand.rb, line 25
def self.authorize(user, record, query)
  policy = policy!(user, record)

  unless policy.public_send(query)
    raise NotAuthorizedError.new(policy: policy, record: record, query: query) # rubocop:disable Style/RaiseArgs, Metrics/LineLength
  end

  true
end
policy!(user, record) click to toggle source
# File lib/sand.rb, line 35
def self.policy!(user, record)
  policy = PolicyFinder.new(record).policy!
  policy.new(user, record)
end
policy_scope(user, scope) click to toggle source
# File lib/sand.rb, line 40
def self.policy_scope(user, scope)
  policy_scope = PolicyFinder.new(scope).scope!
  policy_scope.new(user, scope).resolve
end