mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-12-22 23:33:15 -05:00
#1585 order owners list by last changed time
This commit is contained in:
parent
36405d0faa
commit
3d9b98fae4
3 changed files with 32 additions and 3 deletions
|
@ -9,6 +9,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/go-xorm/xorm"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -251,6 +253,25 @@ func IsPublicMembership(orgId, uid int64) bool {
|
||||||
return has
|
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.
|
// GetOrgUsersByUserId returns all organization-user relations by user ID.
|
||||||
func GetOrgUsersByUserId(uid int64) ([]*OrgUser, error) {
|
func GetOrgUsersByUserId(uid int64) ([]*OrgUser, error) {
|
||||||
ous := make([]*OrgUser, 0, 10)
|
ous := make([]*OrgUser, 0, 10)
|
||||||
|
|
|
@ -61,6 +61,7 @@ type User struct {
|
||||||
LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
|
LoginSource int64 `xorm:"NOT NULL DEFAULT 0"`
|
||||||
LoginName string
|
LoginName string
|
||||||
Type UserType
|
Type UserType
|
||||||
|
OwnedOrgs []*User `xorm:"-"`
|
||||||
Orgs []*User `xorm:"-"`
|
Orgs []*User `xorm:"-"`
|
||||||
Repos []*Repository `xorm:"-"`
|
Repos []*Repository `xorm:"-"`
|
||||||
Location string
|
Location string
|
||||||
|
@ -307,6 +308,12 @@ func (u *User) GetRepositories() (err error) {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetOwnedOrganizations returns all organizations that user owns.
|
||||||
|
func (u *User) GetOwnedOrganizations() (err error) {
|
||||||
|
u.OwnedOrgs, err = GetOwnedOrgsByUserID(u.Id)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
// GetOrganizations returns all organizations that user belongs to.
|
// GetOrganizations returns all organizations that user belongs to.
|
||||||
func (u *User) GetOrganizations() error {
|
func (u *User) GetOrganizations() error {
|
||||||
ous, err := GetOrgUsersByUserId(u.Id)
|
ous, err := GetOrgUsersByUserId(u.Id)
|
||||||
|
|
|
@ -28,11 +28,12 @@ const (
|
||||||
)
|
)
|
||||||
|
|
||||||
func checkContextUser(ctx *middleware.Context, uid int64) *models.User {
|
func checkContextUser(ctx *middleware.Context, uid int64) *models.User {
|
||||||
if err := ctx.User.GetOrganizations(); err != nil {
|
orgs, err := models.GetOwnedOrgsByUserIDDesc(ctx.User.Id, "updated")
|
||||||
ctx.Handle(500, "GetOrganizations", err)
|
if err != nil {
|
||||||
|
ctx.Handle(500, "GetOwnedOrganizationsByUserIDDesc", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
ctx.Data["Orgs"] = ctx.User.Orgs
|
ctx.Data["Orgs"] = orgs
|
||||||
|
|
||||||
// Not equal means current user is an organization.
|
// Not equal means current user is an organization.
|
||||||
if uid == ctx.User.Id || uid == 0 {
|
if uid == ctx.User.Id || uid == 0 {
|
||||||
|
|
Loading…
Reference in a new issue