lib/proxes/policies/request/bulk_policy.rb in proxes-0.9.2 vs lib/proxes/policies/request/bulk_policy.rb in proxes-0.9.4
- old
+ new
@@ -1,35 +1,24 @@
# frozen_string_literal: true
+require 'active_support'
+require 'active_support/core_ext/object/blank'
require 'proxes/policies/request_policy'
module ProxES
class Request
class BulkPolicy < RequestPolicy
def post?
- return false if user.nil?
+ return false if user.nil? ||
+ (request.index && !index_allowed?) ||
+ (request.bulk_indices == '' || patterns.blank?)
- patterns = Permission.for_user(user, 'INDEX').map do |permission|
- permission.pattern.gsub(/\{user.(.*)\}/) { |_match| user.send(Regexp.last_match[1].to_sym) }
- end
-
- return false if request.index && !index_allowed?
- return false if request.bulk_indices == '' || patterns.empty?
-
patterns.find do |pattern|
request.bulk_indices.find { |idx| idx !~ /#{pattern}/ }
end.nil?
end
class Scope < RequestPolicy::Scope
- def resolve
- return false if user.nil?
-
- patterns = Permission.for_user(user, 'INDEX').map do |permission|
- permission.pattern.gsub(/\{user.(.*)\}/) { |_match| user.send(Regexp.last_match[1].to_sym) }
- end
- filter request.index, patterns
- end
end
end
end
end