Skip to content

Commit b5bfab9

Browse files
authored
Merge pull request #130 from 0xbaadf00d/feature/ordering-org-user
Ordering organizations and users by name
2 parents 145648a + 3a10a0c commit b5bfab9

File tree

4 files changed

+41
-21
lines changed

4 files changed

+41
-21
lines changed

models/org.go

+30-17
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,12 @@ func (org *User) GetMembers() error {
6565
return err
6666
}
6767

68-
org.Members = make([]*User, len(ous))
68+
var ids = make([]int64, len(ous))
6969
for i, ou := range ous {
70-
org.Members[i], err = GetUserByID(ou.Uid)
71-
if err != nil {
72-
return err
73-
}
70+
ids[i] = ou.Uid
7471
}
75-
return nil
72+
org.Members, err = GetUsersByIDs(ids)
73+
return err
7674
}
7775

7876
// AddMember adds new member to organization.
@@ -190,7 +188,7 @@ func CountOrganizations() int64 {
190188
// Organizations returns number of organizations in given page.
191189
func Organizations(page, pageSize int) ([]*User, error) {
192190
orgs := make([]*User, 0, pageSize)
193-
return orgs, x.Limit(pageSize, (page-1)*pageSize).Where("type=1").Asc("id").Find(&orgs)
191+
return orgs, x.Limit(pageSize, (page-1)*pageSize).Where("type=1").Asc("name").Find(&orgs)
194192
}
195193

196194
// DeleteOrganization completely and permanently deletes everything of organization.
@@ -260,8 +258,11 @@ func getOrgsByUserID(sess *xorm.Session, userID int64, showAll bool) ([]*User, e
260258
if !showAll {
261259
sess.And("`org_user`.is_public=?", true)
262260
}
263-
return orgs, sess.And("`org_user`.uid=?", userID).
264-
Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs)
261+
return orgs, sess.
262+
And("`org_user`.uid=?", userID).
263+
Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").
264+
Asc("`user`.name").
265+
Find(&orgs)
265266
}
266267

267268
// GetOrgsByUserID returns a list of organizations that the given user ID
@@ -278,8 +279,12 @@ func GetOrgsByUserIDDesc(userID int64, desc string, showAll bool) ([]*User, erro
278279

279280
func getOwnedOrgsByUserID(sess *xorm.Session, userID int64) ([]*User, error) {
280281
orgs := make([]*User, 0, 10)
281-
return orgs, sess.Where("`org_user`.uid=?", userID).And("`org_user`.is_owner=?", true).
282-
Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").Find(&orgs)
282+
return orgs, sess.
283+
Where("`org_user`.uid=?", userID).
284+
And("`org_user`.is_owner=?", true).
285+
Join("INNER", "`org_user`", "`org_user`.org_id=`user`.id").
286+
Asc("`user`.name").
287+
Find(&orgs)
283288
}
284289

285290
// GetOwnedOrgsByUserID returns a list of organizations are owned by given user ID.
@@ -298,12 +303,16 @@ func GetOwnedOrgsByUserIDDesc(userID int64, desc string) ([]*User, error) {
298303
// GetOrgUsersByUserID returns all organization-user relations by user ID.
299304
func GetOrgUsersByUserID(uid int64, all bool) ([]*OrgUser, error) {
300305
ous := make([]*OrgUser, 0, 10)
301-
sess := x.Where("uid=?", uid)
306+
sess := x.
307+
Join("LEFT", "user", `"org_user".org_id="user".id`).
308+
Where(`"org_user".uid=?`, uid)
302309
if !all {
303310
// Only show public organizations
304311
sess.And("is_public=?", true)
305312
}
306-
err := sess.Find(&ous)
313+
err := sess.
314+
Asc("`user`.name").
315+
Find(&ous)
307316
return ous, err
308317
}
309318

@@ -450,10 +459,14 @@ func RemoveOrgRepo(orgID, repoID int64) error {
450459

451460
func (org *User) getUserTeams(e Engine, userID int64, cols ...string) ([]*Team, error) {
452461
teams := make([]*Team, 0, org.NumTeams)
453-
return teams, e.Where("team_user.org_id = ?", org.ID).
454-
And("team_user.uid = ?", userID).
455-
Join("INNER", "team_user", "team_user.team_id = team.id").
456-
Cols(cols...).Find(&teams)
462+
return teams, e.
463+
Where("`team_user`.org_id = ?", org.ID).
464+
Join("INNER", "team_user", "`team_user`.team_id = team.id").
465+
Join("INNER", "user", "`user`.id=team_user.uid").
466+
And("`team_user`.uid = ?", userID).
467+
Asc("`user`.name").
468+
Cols(cols...).
469+
Find(&teams)
457470
}
458471

459472
// GetUserTeamIDs returns of all team IDs of the organization that user is memeber of.

models/user.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ func CountUsers() int64 {
578578
// Users returns number of users in given page.
579579
func Users(page, pageSize int) ([]*User, error) {
580580
users := make([]*User, 0, pageSize)
581-
return users, x.Limit(pageSize, (page-1)*pageSize).Where("type=0").Asc("id").Find(&users)
581+
return users, x.Limit(pageSize, (page-1)*pageSize).Where("type=0").Asc("name").Find(&users)
582582
}
583583

584584
// get user by erify code
@@ -923,6 +923,13 @@ func GetUserEmailsByNames(names []string) []string {
923923
return mails
924924
}
925925

926+
// GetUsersByIDs returns all resolved users from a list of Ids.
927+
func GetUsersByIDs(ids []int64) ([]*User, error) {
928+
ous := make([]*User, 0, len(ids))
929+
err := x.In("id", ids).Asc("name").Find(&ous)
930+
return ous, err
931+
}
932+
926933
// GetUserIDsByNames returns a slice of ids corresponds to names.
927934
func GetUserIDsByNames(names []string) []int64 {
928935
ids := make([]int64, 0, len(names))

routers/admin/repos.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ func Repos(ctx *context.Context) {
2727
Ranger: models.Repositories,
2828
Private: true,
2929
PageSize: setting.UI.Admin.RepoPagingNum,
30-
OrderBy: "id ASC",
30+
OrderBy: "owner_id ASC, name ASC, id ASC",
3131
TplName: REPOS,
3232
})
3333
}

routers/home.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ func ExploreUsers(ctx *context.Context) {
176176
Counter: models.CountUsers,
177177
Ranger: models.Users,
178178
PageSize: setting.UI.ExplorePagingNum,
179-
OrderBy: "updated_unix DESC",
179+
OrderBy: "name ASC",
180180
TplName: EXPLORE_USERS,
181181
})
182182
}
@@ -191,7 +191,7 @@ func ExploreOrganizations(ctx *context.Context) {
191191
Counter: models.CountOrganizations,
192192
Ranger: models.Organizations,
193193
PageSize: setting.UI.ExplorePagingNum,
194-
OrderBy: "updated_unix DESC",
194+
OrderBy: "name ASC",
195195
TplName: EXPLORE_ORGANIZATIONS,
196196
})
197197
}

0 commit comments

Comments
 (0)