Skip to content

Commit 3cc5a9f

Browse files
committed
fix: sort objects by CN
1 parent 3b36b88 commit 3cc5a9f

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

internal/web/computers.go

+7
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package web
22

33
import (
44
"net/url"
5+
"sort"
56

67
"github.com/gofiber/fiber/v2"
78
)
@@ -18,6 +19,9 @@ func (a *App) computersHandler(c *fiber.Ctx) error {
1819

1920
showDisabled := c.Query("show-disabled", "0") == "1"
2021
computers := a.ldapCache.FindComputers(showDisabled)
22+
sort.SliceStable(computers, func(i, j int) bool {
23+
return computers[i].CN() < computers[j].CN()
24+
})
2125

2226
return c.Render("views/computers", fiber.Map{
2327
"session": sess,
@@ -50,6 +54,9 @@ func (a *App) computerHandler(c *fiber.Ctx) error {
5054
}
5155

5256
computer := a.ldapCache.PopulateGroupsForComputer(thinComputer)
57+
sort.SliceStable(computer.Groups, func(i, j int) bool {
58+
return computer.Groups[i].CN() < computer.Groups[j].CN()
59+
})
5360

5461
return c.Render("views/computer", fiber.Map{
5562
"session": sess,

internal/web/groups.go

+22
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package web
22

33
import (
44
"net/url"
5+
"sort"
56

67
"github.com/gofiber/fiber/v2"
78
"github.com/netresearch/ldap-manager/internal/ldap_cache"
@@ -19,6 +20,9 @@ func (a *App) groupsHandler(c *fiber.Ctx) error {
1920
}
2021

2122
groups := a.ldapCache.FindGroups()
23+
sort.SliceStable(groups, func(i, j int) bool {
24+
return groups[i].CN() < groups[j].CN()
25+
})
2226

2327
return c.Render("views/groups", fiber.Map{
2428
"session": sess,
@@ -52,7 +56,13 @@ func (a *App) groupHandler(c *fiber.Ctx) error {
5256

5357
showDisabledUsers := c.Query("show-disabled", "0") == "1"
5458
group := a.ldapCache.PopulateUsersForGroup(thinGroup, showDisabledUsers)
59+
sort.SliceStable(group.Members, func(i, j int) bool {
60+
return group.Members[i].CN() < group.Members[j].CN()
61+
})
5562
unassignedUsers := a.findUnassignedUsers(group)
63+
sort.SliceStable(unassignedUsers, func(i, j int) bool {
64+
return unassignedUsers[i].CN() < unassignedUsers[j].CN()
65+
})
5666

5767
return c.Render("views/group", fiber.Map{
5868
"session": sess,
@@ -106,7 +116,13 @@ func (a *App) groupModifyHandler(c *fiber.Ctx) error {
106116

107117
showDisabledUsers := c.Query("show-disabled", "0") == "1"
108118
group := a.ldapCache.PopulateUsersForGroup(thinGroup, showDisabledUsers)
119+
sort.SliceStable(group.Members, func(i, j int) bool {
120+
return group.Members[i].CN() < group.Members[j].CN()
121+
})
109122
unassignedUsers := a.findUnassignedUsers(group)
123+
sort.SliceStable(unassignedUsers, func(i, j int) bool {
124+
return unassignedUsers[i].CN() < unassignedUsers[j].CN()
125+
})
110126

111127
if form.AddUser != nil {
112128
if err := l.AddUserToGroup(*form.AddUser, thinGroup.DN()); err != nil {
@@ -145,7 +161,13 @@ func (a *App) groupModifyHandler(c *fiber.Ctx) error {
145161
}
146162

147163
group = a.ldapCache.PopulateUsersForGroup(thinGroup, showDisabledUsers)
164+
sort.SliceStable(group.Members, func(i, j int) bool {
165+
return group.Members[i].CN() < group.Members[j].CN()
166+
})
148167
unassignedUsers = a.findUnassignedUsers(group)
168+
sort.SliceStable(unassignedUsers, func(i, j int) bool {
169+
return unassignedUsers[i].CN() < unassignedUsers[j].CN()
170+
})
149171

150172
return c.Render("views/group", fiber.Map{
151173
"session": sess,

internal/web/users.go

+22-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package web
22

33
import (
44
"net/url"
5+
"sort"
56

67
"github.com/gofiber/fiber/v2"
78
"github.com/netresearch/ldap-manager/internal/ldap_cache"
@@ -20,6 +21,9 @@ func (a *App) usersHandler(c *fiber.Ctx) error {
2021

2122
showDisabled := c.Query("show-disabled", "0") == "1"
2223
users := a.ldapCache.FindUsers(showDisabled)
24+
sort.SliceStable(users, func(i, j int) bool {
25+
return users[i].CN() < users[j].CN()
26+
})
2327

2428
return c.Render("views/users", fiber.Map{
2529
"session": sess,
@@ -53,8 +57,13 @@ func (a *App) userHandler(c *fiber.Ctx) error {
5357
}
5458

5559
user := a.ldapCache.PopulateGroupsForUser(thinUser)
56-
60+
sort.SliceStable(user.Groups, func(i, j int) bool {
61+
return user.Groups[i].CN() < user.Groups[j].CN()
62+
})
5763
unassignedGroups := a.findUnassignedGroups(user)
64+
sort.SliceStable(unassignedGroups, func(i, j int) bool {
65+
return unassignedGroups[i].CN() < unassignedGroups[j].CN()
66+
})
5867

5968
return c.Render("views/user", fiber.Map{
6069
"session": sess,
@@ -112,7 +121,13 @@ func (a *App) userModifyHandler(c *fiber.Ctx) error {
112121
}
113122

114123
user := a.ldapCache.PopulateGroupsForUser(thinUser)
124+
sort.SliceStable(user.Groups, func(i, j int) bool {
125+
return user.Groups[i].CN() < user.Groups[j].CN()
126+
})
115127
unassignedGroups := a.findUnassignedGroups(user)
128+
sort.SliceStable(unassignedGroups, func(i, j int) bool {
129+
return unassignedGroups[i].CN() < unassignedGroups[j].CN()
130+
})
116131

117132
if form.AddGroup != nil {
118133
if err := l.AddUserToGroup(userDN, *form.AddGroup); err != nil {
@@ -151,7 +166,13 @@ func (a *App) userModifyHandler(c *fiber.Ctx) error {
151166
}
152167

153168
user = a.ldapCache.PopulateGroupsForUser(thinUser)
169+
sort.SliceStable(user.Groups, func(i, j int) bool {
170+
return user.Groups[i].CN() < user.Groups[j].CN()
171+
})
154172
unassignedGroups = a.findUnassignedGroups(user)
173+
sort.SliceStable(unassignedGroups, func(i, j int) bool {
174+
return unassignedGroups[i].CN() < unassignedGroups[j].CN()
175+
})
155176

156177
return c.Render("views/user", fiber.Map{
157178
"session": sess,

0 commit comments

Comments
 (0)