lib/proxes/policies/request_policy.rb in proxes-0.4.0 vs lib/proxes/policies/request_policy.rb in proxes-0.4.1
- old
+ new
@@ -1,6 +1,7 @@
# frozen_string_literal: true
+
require 'proxes/db'
require 'proxes/models/permission'
require 'proxes/services/logger'
require 'proxes/helpers/indices'
@@ -14,34 +15,27 @@
@user = user
@record = record
end
def method_missing(method_sym, *arguments, &block)
- if method_sym.to_s[-1] == '?'
- return false if user.nil?
+ return super if method_sym.to_s[-1] != '?'
- if record.indices?
- return true if index_allowed?
- else
- return true if action_allowed? method_sym[0..-2].upcase
- end
- false
- else
- super
- end
+ return false if user.nil?
+ return true if record.indices? && index_allowed?
+ action_allowed? method_sym[0..-2].upcase
end
def index_allowed?
patterns = Permission.for_user(user, 'INDEX').map do |permission|
- permission.pattern.gsub(/\{user.(.*)\}/) { |match| user.send(Regexp.last_match[1].to_sym) }
+ permission.pattern.gsub(/\{user.(.*)\}/) { |_match| user.send(Regexp.last_match[1].to_sym) }
end
- return filter(record.index, patterns).count.positive?
+ filter(record.index, patterns).count.positive?
end
def action_allowed?(action)
# Give me all the user's permissions that match the verb
Permission.for_user(user, action).each do |permission|
- return true if record.path =~ %r{#{permission.pattern}}
+ return true if record.path =~ /#{permission.pattern}/
end
false
end
def respond_to_missing?(name, _include_private = false)