mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-23 23:03:34 +01:00
Fix repo-transfer-and-team-repo-count bug (#3241)
This commit is contained in:
parent
7cf17e376b
commit
e67b4055f9
2 changed files with 23 additions and 14 deletions
|
@ -1503,20 +1503,6 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
|
||||||
|
|
||||||
// Remove old team-repository relations.
|
// Remove old team-repository relations.
|
||||||
if owner.IsOrganization() {
|
if owner.IsOrganization() {
|
||||||
if err = owner.getTeams(sess); err != nil {
|
|
||||||
return fmt.Errorf("getTeams: %v", err)
|
|
||||||
}
|
|
||||||
for _, t := range owner.Teams {
|
|
||||||
if !t.hasRepository(sess, repo.ID) {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
t.NumRepos--
|
|
||||||
if _, err := sess.ID(t.ID).Cols("num_repos").Update(t); err != nil {
|
|
||||||
return fmt.Errorf("decrease team repository count '%d': %v", t.ID, err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if err = owner.removeOrgRepo(sess, repo.ID); err != nil {
|
if err = owner.removeOrgRepo(sess, repo.ID); err != nil {
|
||||||
return fmt.Errorf("removeOrgRepo: %v", err)
|
return fmt.Errorf("removeOrgRepo: %v", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -153,3 +153,26 @@ func TestRepoLocalCopyPath(t *testing.T) {
|
||||||
setting.Repository.Local.LocalCopyPath = tempPath
|
setting.Repository.Local.LocalCopyPath = tempPath
|
||||||
assert.Equal(t, expected, repo.LocalCopyPath())
|
assert.Equal(t, expected, repo.LocalCopyPath())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestTransferOwnership(t *testing.T) {
|
||||||
|
assert.NoError(t, PrepareTestDatabase())
|
||||||
|
|
||||||
|
doer := AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
|
||||||
|
repo := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
|
||||||
|
repo.Owner = AssertExistsAndLoadBean(t, &User{ID: repo.OwnerID}).(*User)
|
||||||
|
assert.NoError(t, TransferOwnership(doer, "user2", repo))
|
||||||
|
|
||||||
|
transferredRepo := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
|
||||||
|
assert.EqualValues(t, 2, transferredRepo.OwnerID)
|
||||||
|
|
||||||
|
assert.False(t, com.IsExist(RepoPath("user3", "repo3")))
|
||||||
|
assert.True(t, com.IsExist(RepoPath("user2", "repo3")))
|
||||||
|
AssertExistsAndLoadBean(t, &Action{
|
||||||
|
OpType: ActionTransferRepo,
|
||||||
|
ActUserID: 2,
|
||||||
|
RepoID: 3,
|
||||||
|
Content: "user3/repo3",
|
||||||
|
})
|
||||||
|
|
||||||
|
CheckConsistencyFor(t, &Repository{}, &User{}, &Team{})
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue