diff options
Diffstat (limited to 'models/org.go')
-rw-r--r-- | models/org.go | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/models/org.go b/models/org.go index 91a47e3166..6844445591 100644 --- a/models/org.go +++ b/models/org.go @@ -254,6 +254,26 @@ func IsPublicMembership(orgId, uid int64) bool { return has } +func getPublicOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) { + orgs := make([]*User, 0, 10) + return orgs, sess.Where("`org_user`.uid=?", userID).And("`org_user`.is_public=?", true). + Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs) +} + +// GetPublicOrgsByUserID returns a list of organizations that the given user ID +// has joined publicly. +func GetPublicOrgsByUserID(userID int64) ([]*User, error) { + sess := x.NewSession() + return getPublicOrgsByUserID(sess, userID) +} + +// GetPublicOrgsByUserID returns a list of organizations that the given user ID +// has joined publicly, ordered descending by the given condition. +func GetPublicOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) { + sess := x.NewSession() + return getPublicOrgsByUserID(sess.Desc(desc), userID) +} + func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) { orgs := make([]*User, 0, 10) return orgs, sess.Where("`org_user`.uid=?", userID).And("`org_user`.is_owner=?", true). @@ -267,7 +287,7 @@ func GetOwnedOrgsByUserID(userID int64) ([]*User, error) { } // GetOwnedOrganizationsByUserIDDesc returns a list of organizations are owned by -// given user ID and descring order by given condition. +// given user ID, ordered descending by the given condition. func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) { sess := x.NewSession() return getOwnedOrgsByUserID(sess.Desc(desc), userID) |