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
5 changed files with 67 additions and 0 deletions
|
@ -20,3 +20,14 @@
|
||||||
repo_name: repo3 # TODO old or new name?
|
repo_name: repo3 # TODO old or new name?
|
||||||
is_private: false
|
is_private: false
|
||||||
content: oldRepoName
|
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_pulls: 0
|
||||||
num_closed_pulls: 0
|
num_closed_pulls: 0
|
||||||
is_mirror: false
|
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
|
avatar_email: user10@example.com
|
||||||
num_repos: 3
|
num_repos: 3
|
||||||
is_active: true
|
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...
|
// Create/Remove git-daemon-export-ok for git-daemon...
|
||||||
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
|
daemonExportFile := path.Join(repo.RepoPath(), `git-daemon-export-ok`)
|
||||||
if repo.IsPrivate && com.IsExist(daemonExportFile) {
|
if repo.IsPrivate && com.IsExist(daemonExportFile) {
|
||||||
|
|
|
@ -73,3 +73,22 @@ func TestGetPrivateRepositoryCount(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, int64(2), count)
|
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)
|
||||||
|
}
|
||||||
|
|
Reference in a new issue