|
|
|
@@ -4,17 +4,30 @@ class Organizations::OrganizationUsersController < Organizations::BaseController |
|
|
|
before_action :check_user_can_edit_org, only: [:destroy] |
|
|
|
|
|
|
|
def index |
|
|
|
@organization_users = @organization.organization_users.includes(:user) |
|
|
|
# @organization_users = @organization.organization_users.includes(:user) |
|
|
|
# if params[:search].present? |
|
|
|
# search = params[:search].to_s.downcase |
|
|
|
# user_condition_users = User.like(search).to_sql |
|
|
|
# team_condition_teams = User.joins(:teams).merge(@organization.teams.like(search)).to_sql |
|
|
|
# users = User.from("( #{user_condition_users} UNION #{team_condition_teams }) AS users") |
|
|
|
# |
|
|
|
# @organization_users = @organization_users.where(user_id: users).distinct |
|
|
|
# end |
|
|
|
# |
|
|
|
# @organization_users = kaminari_paginate(@organization_users) |
|
|
|
|
|
|
|
organization_user_ids = @organization.organization_users.pluck(:user_id).uniq |
|
|
|
project_member_user_ids = @organization.projects.joins(:members).pluck("members.user_id").uniq |
|
|
|
users = User.where(id: organization_user_ids + project_member_user_ids) |
|
|
|
if params[:search].present? |
|
|
|
search = params[:search].to_s.downcase |
|
|
|
user_condition_users = User.like(search).to_sql |
|
|
|
team_condition_teams = User.joins(:teams).merge(@organization.teams.like(search)).to_sql |
|
|
|
users = User.from("( #{user_condition_users} UNION #{team_condition_teams }) AS users") |
|
|
|
user_ids = User.from("( #{user_condition_users} UNION #{team_condition_teams }) AS users").pluck(:id) |
|
|
|
|
|
|
|
@organization_users = @organization_users.where(user_id: users).distinct |
|
|
|
users = users.where(id: user_ids) |
|
|
|
end |
|
|
|
|
|
|
|
@organization_users = kaminari_paginate(@organization_users) |
|
|
|
@users = kaminari_paginate(users) |
|
|
|
end |
|
|
|
|
|
|
|
def pm_check_user |
|
|
|
|