class NaturalResource::Policy

Attributes

record[R]
user[R]

Public Class Methods

new(user, record) click to toggle source
# File lib/natural_resource/policy.rb, line 10
def initialize(user, record)
  @user = user
  @record = record
  @errors = Hash.new { |h,k| h[k]= Set.new([]) }
  @failure_status = nil
end

Public Instance Methods

anon?() click to toggle source
# File lib/natural_resource/policy.rb, line 61
def anon?
  user.nil?
end
create?() click to toggle source
# File lib/natural_resource/policy.rb, line 37
def create?
  false
end
destroy?() click to toggle source
# File lib/natural_resource/policy.rb, line 53
def destroy?
  false
end
edit?() click to toggle source
# File lib/natural_resource/policy.rb, line 49
def edit?
  update?
end
errors() click to toggle source
# File lib/natural_resource/policy.rb, line 21
def errors
  if @errors.keys.empty?
    {user: ['does not have permission to perform this action']}
  else
    @errors
  end
end
failure_status() click to toggle source
# File lib/natural_resource/policy.rb, line 17
def failure_status
  @failure_status.presence || :unauthorized
end
index?() click to toggle source
# File lib/natural_resource/policy.rb, line 29
def index?
  false
end
new?() click to toggle source
# File lib/natural_resource/policy.rb, line 41
def new?
  create?
end
own_record?() click to toggle source
# File lib/natural_resource/policy.rb, line 57
def own_record?
  user && record.user == user
end
scope() click to toggle source
# File lib/natural_resource/policy.rb, line 65
def scope
  Pundit.policy_scope!(user, record.class)
end
show?() click to toggle source
# File lib/natural_resource/policy.rb, line 33
def show?
  scope.where(id: record.id).exists?
end
update?() click to toggle source
# File lib/natural_resource/policy.rb, line 45
def update?
  false
end