Use group and project finders instead of direct ActiveRecord relations
This commit is contained in:
parent
3ec37e2622
commit
e56556e1fe
|
@ -1,16 +1,17 @@
|
|||
class Dashboard::GroupsController < Dashboard::ApplicationController
|
||||
def index
|
||||
@groups = if params[:parent_id]
|
||||
parent = Group.find(params[:parent_id])
|
||||
@groups =
|
||||
if params[:parent_id] && Group.supports_nested_groups?
|
||||
parent = Group.find_by(id: params[:parent_id])
|
||||
|
||||
if parent.users_with_parents.find_by(id: current_user)
|
||||
Group.where(id: parent.children)
|
||||
else
|
||||
Group.none
|
||||
end
|
||||
else
|
||||
Group.joins(:group_members).merge(current_user.group_members)
|
||||
end
|
||||
if can?(current_user, :read_group, parent)
|
||||
GroupsFinder.new(current_user, parent: parent).execute
|
||||
else
|
||||
Group.none
|
||||
end
|
||||
else
|
||||
current_user.groups
|
||||
end
|
||||
|
||||
@groups = @groups.search(params[:filter_groups]) if params[:filter_groups].present?
|
||||
@groups = @groups.includes(:route)
|
||||
|
|
|
@ -29,11 +29,11 @@ class GroupEntity < Grape::Entity
|
|||
end
|
||||
|
||||
expose :has_subgroups do |group|
|
||||
group.children.any?
|
||||
GroupsFinder.new(request.current_user, parent: group).execute.any?
|
||||
end
|
||||
|
||||
expose :number_projects_with_delimiter do |group|
|
||||
number_with_delimiter(group.projects.non_archived.count)
|
||||
number_with_delimiter(GroupProjectsFinder.new(group: group, current_user: request.current_user).execute.count)
|
||||
end
|
||||
|
||||
expose :number_users_with_delimiter do |group|
|
||||
|
|
Loading…
Reference in New Issue