#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" | ||||
| 	"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) | ||||
|  |  | |||
|  | @ -61,6 +61,7 @@ type User struct { | |||
| 	LoginSource int64 `xorm:"NOT NULL DEFAULT 0"` | ||||
| 	LoginName   string | ||||
| 	Type        UserType | ||||
| 	OwnedOrgs   []*User       `xorm:"-"` | ||||
| 	Orgs        []*User       `xorm:"-"` | ||||
| 	Repos       []*Repository `xorm:"-"` | ||||
| 	Location    string | ||||
|  | @ -307,6 +308,12 @@ func (u *User) GetRepositories() (err error) { | |||
| 	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.
 | ||||
| func (u *User) GetOrganizations() error { | ||||
| 	ous, err := GetOrgUsersByUserId(u.Id) | ||||
|  |  | |||
|  | @ -28,11 +28,12 @@ const ( | |||
| ) | ||||
| 
 | ||||
| func checkContextUser(ctx *middleware.Context, uid int64) *models.User { | ||||
| 	if err := ctx.User.GetOrganizations(); err != nil { | ||||
| 		ctx.Handle(500, "GetOrganizations", err) | ||||
| 	orgs, err := models.GetOwnedOrgsByUserIDDesc(ctx.User.Id, "updated") | ||||
| 	if err != nil { | ||||
| 		ctx.Handle(500, "GetOwnedOrganizationsByUserIDDesc", err) | ||||
| 		return nil | ||||
| 	} | ||||
| 	ctx.Data["Orgs"] = ctx.User.Orgs | ||||
| 	ctx.Data["Orgs"] = orgs | ||||
| 
 | ||||
| 	// Not equal means current user is an organization.
 | ||||
| 	if uid == ctx.User.Id || uid == 0 { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue