further improvements
This commit is contained in:
parent
17b946e27e
commit
8ea95f6e1b
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user