]> source.dussan.org Git - gitea.git/commitdiff
Fix repo-transfer-and-team-repo-count bug (#3241)
authorEthan Koenig <ethantkoenig@gmail.com>
Wed, 20 Dec 2017 05:37:56 +0000 (21:37 -0800)
committerLunny Xiao <xiaolunwen@gmail.com>
Wed, 20 Dec 2017 05:37:56 +0000 (23:37 -0600)
models/repo.go
models/repo_test.go

index ff0d00308f34d152c74b49c5b5e107d4e5913c45..40495e43990754d059d9272963f50224a8dc115d 100644 (file)
@@ -1503,20 +1503,6 @@ func TransferOwnership(doer *User, newOwnerName string, repo *Repository) error
 
        // Remove old team-repository relations.
        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 {
                        return fmt.Errorf("removeOrgRepo: %v", err)
                }
index 34eaa16c0b7a7bffd2ab22a0f035e781182b6cd1..752ffc2dd908515fc503acea336de257c3e1a8dc 100644 (file)
@@ -153,3 +153,26 @@ func TestRepoLocalCopyPath(t *testing.T) {
        setting.Repository.Local.LocalCopyPath = tempPath
        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{})
+}