summaryrefslogtreecommitdiff
path: root/app/finders/fork_targets_finder.rb
blob: 0b5dfb165728650f536f26f0121b72a2bc38930b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# frozen_string_literal: true

class ForkTargetsFinder
  def initialize(project, user)
    @project = project
    @user = user
  end

  # rubocop: disable CodeReuse/ActiveRecord
  def execute(options = {})
    return ::Namespace.where(id: user.forkable_namespaces).sort_by_type unless options[:only_groups]

    ::Group.where(id: user.manageable_groups(include_groups_with_developer_maintainer_access: true))
  end
  # rubocop: enable CodeReuse/ActiveRecord

  private

  attr_reader :project, :user
end

ForkTargetsFinder.prepend_mod_with('ForkTargetsFinder')