further improvements

This commit is contained in:
David Schneiderbauer 2018-05-24 15:04:15 +02:00
parent 17b946e27e
commit 8ea95f6e1b
No known key found for this signature in database
GPG Key ID: 576113B2803B3EAB
2 changed files with 5 additions and 1 deletions

View File

@ -24,8 +24,10 @@ func TestAccessLevel(t *testing.T) {
user2 := AssertExistsAndLoadBean(t, &User{ID: 5}).(*User) user2 := AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
// A public repository owned by User 2 // A public repository owned by User 2
repo1 := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) repo1 := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
assert.False(t, repo1.IsPrivate)
// A private repository owned by Org 3 // A private repository owned by Org 3
repo2 := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository) repo2 := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
assert.True(t, repo2.IsPrivate)
level, err := AccessLevel(user1.ID, repo1) level, err := AccessLevel(user1.ID, repo1)
assert.NoError(t, err) assert.NoError(t, err)
@ -51,8 +53,10 @@ func TestHasAccess(t *testing.T) {
user2 := AssertExistsAndLoadBean(t, &User{ID: 5}).(*User) user2 := AssertExistsAndLoadBean(t, &User{ID: 5}).(*User)
// A public repository owned by User 2 // A public repository owned by User 2
repo1 := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository) repo1 := AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
assert.False(t, repo1.IsPrivate)
// A private repository owned by Org 3 // A private repository owned by Org 3
repo2 := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository) repo2 := AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
assert.True(t, repo2.IsPrivate)
for _, accessMode := range accessModes { for _, accessMode := range accessModes {
has, err := HasAccess(user1.ID, repo1, accessMode) has, err := HasAccess(user1.ID, repo1, accessMode)

View File

@ -558,7 +558,7 @@ func (u *User) GetOrgRepositoryIDs() ([]int64, error) {
return ids, x.Table("repository"). return ids, x.Table("repository").
Cols("repository.id"). Cols("repository.id").
Join("INNER", "team_user", "repository.owner_id = team_user.org_id"). Join("INNER", "team_user", "repository.owner_id = team_user.org_id").
Join("INNER", "team_repo", "(team_user.team_id = team_repo.team_id AND repository.id = team_repo.repo_id) OR repository.is_private != ?", true). Join("INNER", "team_repo", "repository.is_private != ? OR (team_user.team_id = team_repo.team_id AND repository.id = team_repo.repo_id)", true).
Where("team_user.uid = ?", u.ID). Where("team_user.uid = ?", u.ID).
GroupBy("repository.id").Find(&ids) GroupBy("repository.id").Find(&ids)
} }