diff options
Diffstat (limited to 'app/controllers/groups_controller.rb')
-rw-r--r-- | app/controllers/groups_controller.rb | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index b8def9f5812..17d40cedd5d 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -60,7 +60,22 @@ class GroupsController < Groups::ApplicationController end end + def children + parent = Group.find_by(parent_id: params[:parent_id]) || @group + if parent.nil? || !can?(current_user, :read_group, parent) + render_404 + end + + @children = GroupChildrenFinder.new(current_user, parent_group: parent, params: params).execute + respond_to do |format| + format.json do + render json: GroupChildrenSerializer + .new(current_user: current_user) + .with_pagination(request, response) + .represent(@children) + end + end end def activity |