mirror of
https://github.com/casdoor/casdoor.git
synced 2025-07-03 12:30:19 +08:00
feat: fix GetGroups() API bug when parentGroup is in next page (#3843)
This commit is contained in:
@ -15,6 +15,7 @@ package controllers
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"github.com/beego/beego/utils/pagination"
|
"github.com/beego/beego/utils/pagination"
|
||||||
"github.com/casdoor/casdoor/object"
|
"github.com/casdoor/casdoor/object"
|
||||||
@ -78,12 +79,12 @@ func (c *ApiController) GetGroups() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for _, group := range groups {
|
for _, group := range groups {
|
||||||
_, ok := groupsHaveChildrenMap[group.Name]
|
_, ok := groupsHaveChildrenMap[group.GetId()]
|
||||||
if ok {
|
if ok {
|
||||||
group.HaveChildren = true
|
group.HaveChildren = true
|
||||||
}
|
}
|
||||||
|
|
||||||
parent, ok := groupsHaveChildrenMap[group.ParentId]
|
parent, ok := groupsHaveChildrenMap[fmt.Sprintf("%s/%s", group.Owner, group.ParentId)]
|
||||||
if ok {
|
if ok {
|
||||||
group.ParentName = parent.DisplayName
|
group.ParentName = parent.DisplayName
|
||||||
}
|
}
|
||||||
|
@ -95,12 +95,13 @@ func GetGroupsHaveChildrenMap(groups []*Group) (map[string]*Group, error) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
err := ormer.Engine.Cols("owner", "name", "parent_id", "display_name").Distinct("parent_id").In("parent_id", groupIds).Find(&groupsHaveChildren)
|
err := ormer.Engine.Cols("owner", "name", "parent_id", "display_name").Distinct("name").In("name", groupIds).Find(&groupsHaveChildren)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, group := range groupsHaveChildren {
|
for _, group := range groupsHaveChildren {
|
||||||
resultMap[group.ParentId] = groupMap[group.ParentId]
|
resultMap[group.GetId()] = group
|
||||||
}
|
}
|
||||||
return resultMap, nil
|
return resultMap, nil
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user