diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/org.go | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/models/org.go b/models/org.go index 3474988efc..7f9e3cce5b 100644 --- a/models/org.go +++ b/models/org.go @@ -425,6 +425,25 @@ func GetOrgsByUserID(userID int64, showAll bool) ([]*User, error) { return getOrgsByUserID(sess, userID, showAll) } +// queryUserOrgIDs returns a condition to return user's organization id +func queryUserOrgIDs(uid int64) *builder.Builder { + return builder.Select("team.org_id"). + From("team_user").InnerJoin("team", "team.id = team_user.team_id"). + Where(builder.Eq{"team_user.uid": uid}) +} + +// MinimalOrg represents a simple orgnization with only needed columns +type MinimalOrg = User + +// GetUserOrgsList returns one user's all orgs list +func GetUserOrgsList(uid int64) ([]*MinimalOrg, error) { + var orgs = make([]*MinimalOrg, 0, 20) + return orgs, x.Select("id, name, full_name, visibility, avatar, avatar_email, use_custom_avatar"). + Table("user"). + In("id", queryUserOrgIDs(uid)). + Find(&orgs) +} + func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) { orgs := make([]*User, 0, 10) return orgs, sess. |