Fix public activity showing private repos (#892)
* Fix public activity showing private repos (#811) Signed-off-by: Morgan Bazalgette <the@howl.moe> * error check after setting is_private to true * Add test for UpdateRepository w/ visibility change
This commit is contained in:
		
							parent
							
								
									a36a8f4d72
								
							
						
					
					
						commit
						442145dbd3
					
				|  | @ -20,3 +20,14 @@ | |||
|   repo_name: repo3 # TODO old or new name? | ||||
|   is_private: false | ||||
|   content: oldRepoName | ||||
| 
 | ||||
| - | ||||
|   id: 3 | ||||
|   user_id: 11 | ||||
|   op_type: 1 # create repo | ||||
|   act_user_id: 11 | ||||
|   act_user_name: user11 | ||||
|   repo_id: 9 | ||||
|   repo_user_name: user11 | ||||
|   repo_name: repo9 | ||||
|   is_private: false | ||||
|  |  | |||
|  | @ -93,3 +93,15 @@ | |||
|   num_pulls: 0 | ||||
|   num_closed_pulls: 0 | ||||
|   is_mirror: false | ||||
| 
 | ||||
| - | ||||
|   id: 9 | ||||
|   owner_id: 11 | ||||
|   lower_name: repo9 | ||||
|   name: repo9 | ||||
|   is_private: false | ||||
|   num_issues: 0 | ||||
|   num_closed_issues: 0 | ||||
|   num_pulls: 0 | ||||
|   num_closed_pulls: 0 | ||||
|   is_mirror: false | ||||
|  |  | |||
|  | @ -149,3 +149,18 @@ | |||
|   avatar_email: user10@example.com | ||||
|   num_repos: 3 | ||||
|   is_active: true | ||||
| 
 | ||||
| - | ||||
|   id: 11 | ||||
|   lower_name: user11 | ||||
|   name: user11 | ||||
|   full_name: User Eleven | ||||
|   email: user11@example.com | ||||
|   passwd: password | ||||
|   type: 0 # individual | ||||
|   salt: salt | ||||
|   is_admin: false | ||||
|   avatar: avatar11 | ||||
|   avatar_email: user11@example.com | ||||
|   num_repos: 1 | ||||
|   is_active: true | ||||
|  |  | |||
|  | @ -1408,6 +1408,16 @@ func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err e | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		// If repo has become private, we need to set its actions to private.
 | ||||
| 		if repo.IsPrivate { | ||||
| 			_, err = e.Where("repo_id = ?", repo.ID).Cols("is_private").Update(&Action{ | ||||
| 				IsPrivate: true, | ||||
| 			}) | ||||
| 			if err != nil { | ||||
| 				return err | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		// Create/Remove git-daemon-export-ok for git-daemon...
 | ||||
| 		daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`) | ||||
| 		if repo.IsPrivate && com.IsExist(daemonExportFile) { | ||||
|  |  | |||
|  | @ -73,3 +73,22 @@ func TestGetPrivateRepositoryCount(t *testing.T) { | |||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, int64(2), count) | ||||
| } | ||||
| 
 | ||||
| func TestUpdateRepositoryVisibilityChanged(t *testing.T) { | ||||
| 	assert.NoError(t, PrepareTestDatabase()) | ||||
| 
 | ||||
| 	// Get sample repo and change visibility
 | ||||
| 	repo, err := GetRepositoryByID(9) | ||||
| 	repo.IsPrivate = true | ||||
| 
 | ||||
| 	// Update it
 | ||||
| 	err = UpdateRepository(repo, true) | ||||
| 	assert.NoError(t, err) | ||||
| 
 | ||||
| 	// Check visibility of action has become private
 | ||||
| 	act := Action{} | ||||
| 	_, err = x.ID(3).Get(&act) | ||||
| 
 | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.Equal(t, true, act.IsPrivate) | ||||
| } | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue