lib/proxes/helpers/indices.rb in proxes-0.9.2 vs lib/proxes/helpers/indices.rb in proxes-0.9.4
- old
+ new
@@ -1,17 +1,33 @@
# frozen_string_literal: true
+require 'active_support'
+require 'active_support/core_ext/object/blank'
+
module ProxES
module Helpers
module Indices
def filter(asked, against)
- return against.map { |a| a.gsub(/\.\*/, '*') } if asked == ['*'] || asked == [] || asked.nil?
+ return against.map { |a| a.gsub(/\.\*/, '*') } if asked == ['*'] || asked.blank?
answer = []
against.each do |pattern|
answer.concat(asked.select { |idx| idx =~ /#{pattern}/ })
end
answer
+ end
+
+ def patterns
+ return [] if user.nil?
+ patterns_for('INDEX').map do |permission|
+ return nil if permission.pattern.blank?
+ permission.pattern.gsub(/\{user.(.*)\}/) { |_match| user.send(Regexp.last_match[1].to_sym) }
+ end.compact
+ end
+
+ def patterns_for(action)
+ return [] if user.nil?
+ Permission.for_user(user, action)
end
end
end
end