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.
}
ctx.Data["ContextUser"] = ctxUser
- if err := ctx.User.GetOrganizations(&models.SearchOrganizationsOptions{All: true}); err != nil {
- ctx.ServerError("GetOrganizations", err)
+ orgs, err := models.GetUserOrgsList(ctx.User.ID)
+ if err != nil {
+ ctx.ServerError("GetUserOrgsList", err)
return nil
}
- ctx.Data["Orgs"] = ctx.User.Orgs
+ ctx.Data["Orgs"] = orgs
return ctxUser
}