From 1cb781ed95811b1403bbbc03f7cbfb6b76f382b9 Mon Sep 17 00:00:00 2001 From: "sylor_huang@126.com" Date: Wed, 25 Mar 2020 18:19:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A1=B9=E7=9B=AE=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=A1=B5=E7=9A=84=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/projects_controller.rb | 4 +++- app/queries/projects/list_query.rb | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 9f67456d9..e44ac026b 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -6,7 +6,9 @@ class ProjectsController < ApplicationController before_action :authorizate_user_can_edit_project!, only: %i[update] def index - scope = Projects::ListQuery.call(params) + is_admin = current_user && current_user&.admin? + + scope = Projects::ListQuery.call(params.merge(is_admin: is_admin)) @total_count = scope.size @projects = paginate(scope) end diff --git a/app/queries/projects/list_query.rb b/app/queries/projects/list_query.rb index 081e99270..c7189ee85 100644 --- a/app/queries/projects/list_query.rb +++ b/app/queries/projects/list_query.rb @@ -10,7 +10,14 @@ class Projects::ListQuery < ApplicationQuery end def call - scope = Project.visible.like(params[:search]) + if params[:is_admin] + projects = Project.all + elsif params[:user_id].to_i != 2 + projects = Project.joins(:members).where.not("projects.is_public = ? and (projects.user_id != ? or members.user_id != ?)", false, params[:user_id].to_i,params[:user_id].to_i ) + else + projects = Project.visible + end + scope = projects.like(params[:search]) .with_project_type(params[:project_type]) .with_project_category(params[:category_id]) .with_project_language(params[:language_id])