From 1358c23ca6e4bd498855dab49f00937df06dcb40 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 24 May 2022 11:43:47 +0800 Subject: [PATCH 1/2] fix: trasfer project member must remove old permission --- app/services/projects/transfer_service.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb index 7d1214eb8..157263962 100644 --- a/app/services/projects/transfer_service.rb +++ b/app/services/projects/transfer_service.rb @@ -24,7 +24,8 @@ class Projects::TransferService < ApplicationService private def update_owner - project.members.map{|m| m.destroy! if m.user_id == owner.id || (new_owner.is_a?(Organization) && new_owner.is_member?(m.user_id)) } + project.members.map{|m| m.destroy! if m.user_id == owner.id || project.member(new_owner.id) || (new_owner.is_a?(Organization) && new_owner.is_member?(m.user_id)) } + project.set_owner_permission(new_owner) project.update!(user_id: new_owner.id) end From aa18fe0ad42f3715019038c425acc7b7060eb1e1 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 24 May 2022 11:43:47 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D:=20=E8=BD=AC=E7=A7=BB?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=97=B6=E6=96=B0=E6=8E=A5=E5=8F=97=E8=80=85?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E7=A7=BB=E9=99=A4=E5=8E=9F=E6=9D=A5=E7=9A=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/projects/transfer_service.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/services/projects/transfer_service.rb b/app/services/projects/transfer_service.rb index 7d1214eb8..157263962 100644 --- a/app/services/projects/transfer_service.rb +++ b/app/services/projects/transfer_service.rb @@ -24,7 +24,8 @@ class Projects::TransferService < ApplicationService private def update_owner - project.members.map{|m| m.destroy! if m.user_id == owner.id || (new_owner.is_a?(Organization) && new_owner.is_member?(m.user_id)) } + project.members.map{|m| m.destroy! if m.user_id == owner.id || project.member(new_owner.id) || (new_owner.is_a?(Organization) && new_owner.is_member?(m.user_id)) } + project.set_owner_permission(new_owner) project.update!(user_id: new_owner.id) end