Skip to content

Commit

Permalink
Fix public activity showing private repos (go-gitea#892)
Browse files Browse the repository at this point in the history
* Fix public activity showing private repos (go-gitea#811)

Signed-off-by: Morgan Bazalgette <the@howl.moe>

* error check after setting is_private to true

* Add test for UpdateRepository w/ visibility change
  • Loading branch information
thehowl authored and lunny committed Feb 11, 2017
1 parent a36a8f4 commit 442145d
Show file tree
Hide file tree
Showing 5 changed files with 67 additions and 0 deletions.
11 changes: 11 additions & 0 deletions models/fixtures/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
12 changes: 12 additions & 0 deletions models/fixtures/repository.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
15 changes: 15 additions & 0 deletions models/fixtures/user.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
10 changes: 10 additions & 0 deletions models/repo.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
19 changes: 19 additions & 0 deletions models/repo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}

0 comments on commit 442145d

Please sign in to comment.