diff --git a/app/controllers/members_controller.rb b/app/controllers/members_controller.rb index b4d8e1f9a..d7f0204c9 100644 --- a/app/controllers/members_controller.rb +++ b/app/controllers/members_controller.rb @@ -64,12 +64,13 @@ class MembersController < ApplicationController end def check_member_exists! - return render_error("user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? + @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take + return render_error("user_id为#{params[:user_id]}的用户已经是项目成员") if member_exists? || (params[:user_id].to_i == current_user.id && @current_user_header_team.present?) end def check_member_not_exists! @current_user_header_team = Team.joins(:team_users, :team_projects).where(team_projects: {project_id: @project.id}, team_users: {user_id: current_user.id}).order(authorize: :desc).take - return render_error("用户为组织成员,请到组织下操作!") if @current_user_header_team.present? + return render_error("用户为组织成员,请到组织下操作!") if (params[:user_id].to_i == current_user.id && @current_user_header_team.present?) && !member_exists? return render_error("user_id为#{params[:user_id]}的用户还不是项目成员") unless member_exists? end