summaryrefslogtreecommitdiffstats
path: root/models/org.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/org.go')
-rw-r--r--models/org.go21
1 files changed, 21 insertions, 0 deletions
diff --git a/models/org.go b/models/org.go
index 4076bf15e5..b45dcafb21 100644
--- a/models/org.go
+++ b/models/org.go
@@ -9,6 +9,8 @@ import (
"fmt"
"os"
"strings"
+
+ "github.com/go-xorm/xorm"
)
var (
@@ -251,6 +253,25 @@ func IsPublicMembership(orgId, uid int64) bool {
return has
}
+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).
+ Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs)
+}
+
+// GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID.
+func GetOwnedOrgsByUserID(userID int64) ([]*User, error) {
+ sess := x.NewSession()
+ return getOwnedOrgsByUserID(sess, userID)
+}
+
+// GetOwnedOrganizationsByUserIDDesc returns a list of organizations are owned by
+// given user ID and descring order by given condition.
+func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) {
+ sess := x.NewSession()
+ return getOwnedOrgsByUserID(sess.Desc(desc), userID)
+}
+
// GetOrgUsersByUserId returns all organization-user relations by user ID.
func GetOrgUsersByUserId(uid int64) ([]*OrgUser, error) {
ous := make([]*OrgUser, 0, 10)