diff --git a/app/controllers/groups_controller.rb b/app/controllers/groups_controller.rb index 486b0bee0cb..4a05434c783 100644 --- a/app/controllers/groups_controller.rb +++ b/app/controllers/groups_controller.rb @@ -50,7 +50,7 @@ class GroupsController < ApplicationController end def people - @users = group.projects.map(&:users).flatten.uniq + @users = group.users end protected diff --git a/app/models/group.rb b/app/models/group.rb index 1bb805e8caf..628d00092cd 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -23,10 +23,14 @@ class Group < ActiveRecord::Base delegate :name, to: :owner, allow_nil: true, prefix: true def self.search query - where("name like :query or code like :query", query: "%#{query}%") + where("name like :query OR code like :query", query: "%#{query}%") end def to_param code end + + def users + User.joins(:users_projects).where('users_projects.project_id' => project_ids).uniq + end end diff --git a/app/models/project.rb b/app/models/project.rb index f525f292222..c00bb4563fd 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -30,15 +30,15 @@ class Project < ActiveRecord::Base # Scopes scope :public_only, where(private_flag: false) - scope :without_user, ->(user) { where("id not in (:ids)", ids: user.projects.map(&:id) ) } - scope :not_in_group, ->(group) { where("id not in (:ids)", ids: group.project_ids ) } + scope :without_user, ->(user) { where("id NOT IN (:ids)", ids: user.projects.map(&:id) ) } + scope :not_in_group, ->(group) { where("id NOT IN (:ids)", ids: group.project_ids ) } def self.active joins(:issues, :notes, :merge_requests).order("issues.created_at, notes.created_at, merge_requests.created_at DESC") end def self.search query - where("name like :query or code like :query or path like :query", query: "%#{query}%") + where("name like :query OR code like :query OR path like :query", query: "%#{query}%") end def self.create_by_user(params, user)