fix:some bug
This commit is contained in:
parent
13768f9778
commit
0d828ead1f
|
@ -7,7 +7,7 @@ class Users::AppliedTransferProjectsController < Users::BaseController
|
||||||
user_collection_sql = AppliedTransferProject.where(owner_id: @_observed_user.id).to_sql
|
user_collection_sql = AppliedTransferProject.where(owner_id: @_observed_user.id).to_sql
|
||||||
org_collection_sql = AppliedTransferProject.where(owner_id: Organization.joins(team_users: :team).where(team_users: {user_id: @_observed_user.id}, teams: {authorize: %w(admin owner)} )).to_sql
|
org_collection_sql = AppliedTransferProject.where(owner_id: Organization.joins(team_users: :team).where(team_users: {user_id: @_observed_user.id}, teams: {authorize: %w(admin owner)} )).to_sql
|
||||||
@applied_transfer_projects = AppliedTransferProject.from("( #{ user_collection_sql } UNION #{ org_collection_sql } ) AS applied_transfer_projects")
|
@applied_transfer_projects = AppliedTransferProject.from("( #{ user_collection_sql } UNION #{ org_collection_sql } ) AS applied_transfer_projects")
|
||||||
@applied_transfer_projects = paginate @applied_transfer_projects
|
@applied_transfer_projects = paginate @applied_transfer_projects.order("created_at desc")
|
||||||
end
|
end
|
||||||
|
|
||||||
# 接受迁移
|
# 接受迁移
|
||||||
|
|
|
@ -3,7 +3,7 @@ class SendTransferProjectAppliedMessageJob < ApplicationJob
|
||||||
|
|
||||||
def perform(applied_transfer_project, applied_user, message_status)
|
def perform(applied_transfer_project, applied_user, message_status)
|
||||||
project = applied_transfer_project.project
|
project = applied_transfer_project.project
|
||||||
owner = applied_transfer_project.owner
|
owner = project.owner
|
||||||
return unless project.present?
|
return unless project.present?
|
||||||
return unless owner.present?
|
return unless owner.present?
|
||||||
if owner.is_a?(Organization)
|
if owner.is_a?(Organization)
|
||||||
|
@ -12,13 +12,22 @@ class SendTransferProjectAppliedMessageJob < ApplicationJob
|
||||||
receivers = project.managers
|
receivers = project.managers
|
||||||
end
|
end
|
||||||
receivers.each do |rec|
|
receivers.each do |rec|
|
||||||
|
next if applied_user.id == rec.user_id # 自己不要给自己发通知
|
||||||
AppliedMessage.create!(user_id: rec.user_id,
|
AppliedMessage.create!(user_id: rec.user_id,
|
||||||
applied: applied_transfer_project,
|
applied: applied_transfer_project,
|
||||||
status: message_status,
|
status: message_status,
|
||||||
name: build_name(project.name, owner.real_name, message_status),
|
name: build_name(project.name, applied_transfer_project&.owner&.real_name, message_status),
|
||||||
applied_user_id: applied_user.id,
|
applied_user_id: applied_user.id,
|
||||||
project_id: project.id)
|
project_id: project.id)
|
||||||
end
|
end
|
||||||
|
if message_status == 'successed' # 如果转移成功,给转移发起者发通知已转移成功
|
||||||
|
AppliedMessage.find_or_create_by!(user_id: applied_transfer_project.user_id,
|
||||||
|
applied: applied_transfer_project,
|
||||||
|
status: message_status,
|
||||||
|
name: build_name(project.name, applied_transfer_project&.owner&.real_name, message_status),
|
||||||
|
applied_user_id: applied_user.id,
|
||||||
|
project_id: project.id)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
class Projects::AcceptTransferService < ApplicationService
|
class Projects::AcceptTransferService < ApplicationService
|
||||||
attr_accessor :applied_transfer_project
|
attr_accessor :applied_transfer_project, :owner
|
||||||
attr_reader :user, :project
|
attr_reader :user, :project
|
||||||
|
|
||||||
def initialize(user, project)
|
def initialize(user, project)
|
||||||
@user = user
|
@user = user
|
||||||
@project = project
|
@project = project
|
||||||
@applied_transfer_project = project.applied_transfer_project
|
@applied_transfer_project = project.applied_transfer_project
|
||||||
|
@owner = @applied_transfer_project.owner
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
|
@ -26,7 +27,12 @@ class Projects::AcceptTransferService < ApplicationService
|
||||||
private
|
private
|
||||||
def validate!
|
def validate!
|
||||||
raise Error, '该仓库未在迁移' unless @applied_transfer_project.present? && @project.is_transfering
|
raise Error, '该仓库未在迁移' unless @applied_transfer_project.present? && @project.is_transfering
|
||||||
raise Error, '未拥有接受转移权限' unless @user.admin? || @project.manager?(@user)
|
raise Error, '未拥有接受转移权限' unless is_permit_operator
|
||||||
|
end
|
||||||
|
|
||||||
|
def is_permit_operator
|
||||||
|
return true if @user == @owner
|
||||||
|
return @owner.is_a?(Organization) && @owner.is_admin?(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_apply
|
def update_apply
|
||||||
|
@ -34,7 +40,7 @@ class Projects::AcceptTransferService < ApplicationService
|
||||||
end
|
end
|
||||||
|
|
||||||
def operate_project
|
def operate_project
|
||||||
@project = Projects::TransferService.call(@project, @applied_transfer_project.owner)
|
@project = Projects::TransferService.call(@project, @owner)
|
||||||
end
|
end
|
||||||
|
|
||||||
def send_apply_message
|
def send_apply_message
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
class Projects::RefuseTransferService < ApplicationService
|
class Projects::RefuseTransferService < ApplicationService
|
||||||
attr_accessor :applied_transfer_project
|
attr_accessor :applied_transfer_project, :owner
|
||||||
attr_reader :user, :project
|
attr_reader :user, :project
|
||||||
|
|
||||||
def initialize(user, project)
|
def initialize(user, project)
|
||||||
@user = user
|
@user = user
|
||||||
@project = project
|
@project = project
|
||||||
@applied_transfer_project = project.applied_transfer_project
|
@applied_transfer_project = project.applied_transfer_project
|
||||||
|
@owner = @applied_transfer_project.owner
|
||||||
end
|
end
|
||||||
|
|
||||||
def call
|
def call
|
||||||
|
@ -21,7 +22,12 @@ class Projects::RefuseTransferService < ApplicationService
|
||||||
private
|
private
|
||||||
def validate!
|
def validate!
|
||||||
raise Error, '该仓库未在迁移' unless @applied_transfer_project.present? && @project.is_transfering
|
raise Error, '该仓库未在迁移' unless @applied_transfer_project.present? && @project.is_transfering
|
||||||
raise Error, '未拥有拒绝转移权限' unless @user.admin? || @project.manager?(@user)
|
raise Error, '未拥有拒绝转移权限' unless is_permit_operator
|
||||||
|
end
|
||||||
|
|
||||||
|
def is_permit_operator
|
||||||
|
return true if @user == @owner
|
||||||
|
return @owner.is_a?(Organization) && @owner.is_admin?(@user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def update_apply
|
def update_apply
|
||||||
|
|
|
@ -23,6 +23,7 @@ class Projects::TransferService < ApplicationService
|
||||||
|
|
||||||
private
|
private
|
||||||
def update_owner
|
def update_owner
|
||||||
|
project.members.find_by(user_id: owner.id).destroy! if owner.is_a?(User)
|
||||||
project.update!(user_id: new_owner.id)
|
project.update!(user_id: new_owner.id)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue