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