summaryrefslogtreecommitdiff
path: root/app/controllers/concerns/groups_tree.rb
diff options
context:
space:
mode:
authorBob Van Landuyt <bob@vanlanduyt.co>2017-07-21 15:49:37 +0200
committerBob Van Landuyt <bob@vanlanduyt.co>2017-09-01 10:21:09 +0200
commit1e668a3cfebfcf576a8c5da834bad094fd9039f6 (patch)
tree405caed1e99ae5f642c9f363d793b3a9a64c4dd1 /app/controllers/concerns/groups_tree.rb
parentbf4ec606a56238326bf4930c59d0ca82dd281cb7 (diff)
downloadgitlab-ce-1e668a3cfebfcf576a8c5da834bad094fd9039f6.tar.gz
Rework subgroup endpointbvl-show-projects-in-group-tree
Diffstat (limited to 'app/controllers/concerns/groups_tree.rb')
-rw-r--r--app/controllers/concerns/groups_tree.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/app/controllers/concerns/groups_tree.rb b/app/controllers/concerns/groups_tree.rb
new file mode 100644
index 00000000000..0420f773b26
--- /dev/null
+++ b/app/controllers/concerns/groups_tree.rb
@@ -0,0 +1,22 @@
+module GroupsTree
+ def find_groups(parent, all_available: true)
+ groups =
+ if parent && Group.supports_nested_groups?
+ if can?(current_user, :read_group, parent)
+ GroupsFinder.new(current_user,
+ parent: parent,
+ all_available: all_available,
+ all_children_for_parent: params[:filter_groups].present?).execute
+ else
+ Group.none
+ end
+ else
+ GroupsFinder.new(current_user, all_available: all_available).execute
+ end
+
+ groups = groups.search(params[:filter_groups]) if params[:filter_groups].present?
+ groups = groups.includes(:route)
+ groups = groups.sort(@sort = params[:sort])
+ groups.page(params[:page])
+ end
+end