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) =>