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.
 | ||||
| 	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) | ||||
| 		} | ||||
|  |  | |||
|  | @ -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{}) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue