diff options
author | Lunny Xiao <xiaolunwen@gmail.com> | 2017-02-17 08:58:19 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 08:58:19 +0800 |
commit | 847527fd6dd8e53eea918e6e41da6ebc64be1388 (patch) | |
tree | d240617fa9787331e540326bdde4574bfbbeac7c /models/user.go | |
parent | 669dad71f830693a83a50e3de52a86e3940497b6 (diff) | |
download | gitea-847527fd6dd8e53eea918e6e41da6ebc64be1388.tar.gz gitea-847527fd6dd8e53eea918e6e41da6ebc64be1388.zip |
Fix all the bugs in issues and pulls on dashboard (#943)
* fix all the bugs in issues and pulls on dashboard
* small fix and refactor
* add method getRepoIDs for IssueList
Diffstat (limited to 'models/user.go')
-rw-r--r-- | models/user.go | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/models/user.go b/models/user.go index 5f0816cd48..c9ddbe7c8b 100644 --- a/models/user.go +++ b/models/user.go @@ -500,6 +500,34 @@ func (u *User) GetRepositories(page, pageSize int) (err error) { return err } +// GetRepositoryIDs returns repositories IDs where user owned +func (u *User) GetRepositoryIDs() ([]int64, error) { + var ids []int64 + return ids, x.Table("repository").Cols("id").Where("owner_id = ?", u.ID).Find(&ids) +} + +// GetOrgRepositoryIDs returns repositories IDs where user's team owned +func (u *User) GetOrgRepositoryIDs() ([]int64, error) { + var ids []int64 + return ids, x.Table("repository"). + Cols("repository.id"). + Join("INNER", "team_user", "repository.owner_id = team_user.org_id AND team_user.uid = ?", u.ID). + GroupBy("repository.id").Find(&ids) +} + +// GetAccessRepoIDs returns all repsitories IDs where user's or user is a team member orgnizations +func (u *User) GetAccessRepoIDs() ([]int64, error) { + ids, err := u.GetRepositoryIDs() + if err != nil { + return nil, err + } + ids2, err := u.GetOrgRepositoryIDs() + if err != nil { + return nil, err + } + return append(ids, ids2...), nil +} + // GetMirrorRepositories returns mirror repositories that user owns, including private repositories. func (u *User) GetMirrorRepositories() ([]*Repository, error) { return GetUserMirrorRepositories(u.ID) |