From: 6543 <6543@obermui.de> Date: Fri, 26 Feb 2021 09:08:09 +0000 (+0100) Subject: Re-enable transfer repo back from org to user account (#14807) X-Git-Tag: v1.13.3~8 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=77ce08976d74103e16ffd96df7d012abf7f69dc4;p=gitea.git Re-enable transfer repo back from org to user account (#14807) * re-enable transfer repo back from org to user account * add test case --- diff --git a/integrations/api_repo_test.go b/integrations/api_repo_test.go index 7cabd51add..8798fe0914 100644 --- a/integrations/api_repo_test.go +++ b/integrations/api_repo_test.go @@ -450,6 +450,7 @@ func TestAPIRepoTransfer(t *testing.T) { {ctxUserID: 1, newOwner: "user2", teams: &[]int64{2}, expectedStatus: http.StatusUnprocessableEntity}, {ctxUserID: 1, newOwner: "user3", teams: &[]int64{5}, expectedStatus: http.StatusForbidden}, {ctxUserID: 1, newOwner: "user3", teams: &[]int64{2}, expectedStatus: http.StatusAccepted}, + {ctxUserID: 2, newOwner: "user2", teams: nil, expectedStatus: http.StatusAccepted}, } defer prepareTestEnv(t)() diff --git a/services/repository/transfer.go b/services/repository/transfer.go index a80f8635bb..05f7a56b01 100644 --- a/services/repository/transfer.go +++ b/services/repository/transfer.go @@ -80,8 +80,8 @@ func StartRepositoryTransfer(doer, newOwner *models.User, repo *models.Repositor return fmt.Errorf("repository is not ready for transfer") } - // Admin is always allowed to transfer - if doer.IsAdmin { + // Admin is always allowed to transfer || user transfer repo back to his account + if doer.IsAdmin || doer.ID == newOwner.ID { return TransferOwnership(doer, newOwner, repo, teams) }