diff options
Diffstat (limited to 'app/finders/clusters/agents_finder.rb')
-rw-r--r-- | app/finders/clusters/agents_finder.rb | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/app/finders/clusters/agents_finder.rb b/app/finders/clusters/agents_finder.rb index d0b1240157c..14277db3f85 100644 --- a/app/finders/clusters/agents_finder.rb +++ b/app/finders/clusters/agents_finder.rb @@ -4,8 +4,8 @@ module Clusters class AgentsFinder include FinderMethods - def initialize(project, current_user, params: {}) - @project = project + def initialize(object, current_user, params: {}) + @object = object @current_user = current_user @params = params end @@ -13,18 +13,25 @@ module Clusters def execute return ::Clusters::Agent.none unless can_read_cluster_agents? - agents = project.cluster_agents - agents = agents.with_name(params[:name]) if params[:name].present? + agents = filter_clusters(object.cluster_agents) agents.ordered_by_name end private - attr_reader :project, :current_user, :params + attr_reader :object, :current_user, :params + + def filter_clusters(agents) + agents = agents.with_name(params[:name]) if params[:name].present? + + agents + end def can_read_cluster_agents? - current_user.can?(:read_cluster, project) + current_user&.can?(:read_cluster, object) end end end + +Clusters::AgentsFinder.prepend_mod_with('Clusters::AgentsFinder') |