class ProxES::RequestPolicy
Attributes
record[R]
request[R]
user[R]
Public Class Methods
new(user, record)
click to toggle source
# File lib/proxes/policies/request_policy.rb, line 13 def initialize(user, record) @user = user || Ditty::User.anonymous_user @record = record end
Public Instance Methods
method_missing(method_sym, *arguments, &block)
click to toggle source
Calls superclass method
# File lib/proxes/policies/request_policy.rb, line 18 def method_missing(method_sym, *arguments, &block) return super unless respond_to_missing? method_sym return false if permissions.empty? return permissions.count.positive? unless request.indices? # Only allow if all the indices match the given permissions request.indices.find do |idx| idx = idx[1..-1] if idx[0] == '-' permissions.find { |perm| perm.index_regex.match idx }.nil? end.nil? end
permissions()
click to toggle source
# File lib/proxes/policies/request_policy.rb, line 36 def permissions @permissions ||= Permission.for_user(user).for_request(request) end
respond_to_missing?(name, _include_private = false)
click to toggle source
# File lib/proxes/policies/request_policy.rb, line 32 def respond_to_missing?(name, _include_private = false) name[-1] == '?' end