diff --git a/controllers/user.go b/controllers/user.go
index 04320dc1..4dc2a5ab 100644
--- a/controllers/user.go
+++ b/controllers/user.go
@@ -567,6 +567,6 @@ func (c *ApiController) RemoveUserFromGroup() {
name := c.Ctx.Request.Form.Get("name")
groupName := c.Ctx.Request.Form.Get("groupName")
- c.Data["json"] = wrapActionResponse(object.RemoveUserFromGroup(owner, name, groupName))
+ c.Data["json"] = wrapActionResponse(object.RemoveUserFromGroup(owner, name, util.GetId(owner, groupName)))
c.ServeJSON()
}
diff --git a/object/group.go b/object/group.go
index 770ad345..c726b007 100644
--- a/object/group.go
+++ b/object/group.go
@@ -164,7 +164,7 @@ func DeleteGroup(group *Group) (bool, error) {
return false, errors.New("group has children group")
}
- if count, err := GetGroupUserCount(group.Name, "", ""); err != nil {
+ if count, err := GetGroupUserCount(group.GetId(), "", ""); err != nil {
return false, err
} else if count > 0 {
return false, errors.New("group has users")
@@ -214,7 +214,7 @@ func ConvertToTreeData(groups []*Group, parentId string) []*Group {
return treeData
}
-func RemoveUserFromGroup(owner, name, groupName string) (bool, error) {
+func RemoveUserFromGroup(owner, name, groupId string) (bool, error) {
user, err := getUser(owner, name)
if err != nil {
return false, err
@@ -223,7 +223,7 @@ func RemoveUserFromGroup(owner, name, groupName string) (bool, error) {
return false, errors.New("user not exist")
}
- user.Groups = util.DeleteVal(user.Groups, groupName)
+ user.Groups = util.DeleteVal(user.Groups, groupId)
affected, err := updateUser(user.GetId(), user, []string{"groups"})
if err != nil {
return false, err
@@ -231,22 +231,22 @@ func RemoveUserFromGroup(owner, name, groupName string) (bool, error) {
return affected != 0, err
}
-func GetGroupUserCount(groupName string, field, value string) (int64, error) {
+func GetGroupUserCount(groupId string, field, value string) (int64, error) {
if field == "" && value == "" {
- return ormer.Engine.Where(builder.Like{"`groups`", groupName}).
+ return ormer.Engine.Where(builder.Like{"`groups`", groupId}).
Count(&User{})
} else {
return ormer.Engine.Table("user").
- Where(builder.Like{"`groups`", groupName}).
+ Where(builder.Like{"`groups`", groupId}).
And(fmt.Sprintf("user.%s LIKE ?", util.CamelToSnakeCase(field)), "%"+value+"%").
Count()
}
}
-func GetPaginationGroupUsers(groupName string, offset, limit int, field, value, sortField, sortOrder string) ([]*User, error) {
+func GetPaginationGroupUsers(groupId string, offset, limit int, field, value, sortField, sortOrder string) ([]*User, error) {
users := []*User{}
session := ormer.Engine.Table("user").
- Where(builder.Like{"`groups`", groupName + "\""})
+ Where(builder.Like{"`groups`", groupId + "\""})
if offset != -1 && limit != -1 {
session.Limit(limit, offset)
@@ -273,10 +273,10 @@ func GetPaginationGroupUsers(groupName string, offset, limit int, field, value,
return users, nil
}
-func GetGroupUsers(groupName string) ([]*User, error) {
+func GetGroupUsers(groupId string) ([]*User, error) {
users := []*User{}
err := ormer.Engine.Table("user").
- Where(builder.Like{"`groups`", groupName + "\""}).
+ Where(builder.Like{"`groups`", groupId + "\""}).
Find(&users)
if err != nil {
return nil, err
diff --git a/object/user.go b/object/user.go
index c4f09cef..5faf47ae 100644
--- a/object/user.go
+++ b/object/user.go
@@ -230,7 +230,7 @@ func GetUserCount(owner, field, value string, groupName string) (int64, error) {
session := GetSession(owner, -1, -1, field, value, "", "")
if groupName != "" {
- return GetGroupUserCount(groupName, field, value)
+ return GetGroupUserCount(util.GetId(owner, groupName), field, value)
}
return session.Count(&User{})
@@ -274,7 +274,7 @@ func GetPaginationUsers(owner string, offset, limit int, field, value, sortField
users := []*User{}
if groupName != "" {
- return GetPaginationGroupUsers(groupName, offset, limit, field, value, sortField, sortOrder)
+ return GetPaginationGroupUsers(util.GetId(owner, groupName), offset, limit, field, value, sortField, sortOrder)
}
session := GetSessionForUser(owner, offset, limit, field, value, sortField, sortOrder)
diff --git a/web/src/UserEditPage.js b/web/src/UserEditPage.js
index b3b12e69..14376e1d 100644
--- a/web/src/UserEditPage.js
+++ b/web/src/UserEditPage.js
@@ -319,7 +319,7 @@ class UserEditPage extends React.Component {
})}
>
{
- this.state.groups?.map((group) =>