fix: use org/groupName replace groupName (#2180)

This commit is contained in:
Yaodong Yu
2023-08-06 20:16:44 +08:00
committed by GitHub
parent f06a4990bd
commit 3220a04fa9
5 changed files with 15 additions and 15 deletions

View File

@ -567,6 +567,6 @@ func (c *ApiController) RemoveUserFromGroup() {
name := c.Ctx.Request.Form.Get("name") name := c.Ctx.Request.Form.Get("name")
groupName := c.Ctx.Request.Form.Get("groupName") 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() c.ServeJSON()
} }

View File

@ -164,7 +164,7 @@ func DeleteGroup(group *Group) (bool, error) {
return false, errors.New("group has children group") 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 return false, err
} else if count > 0 { } else if count > 0 {
return false, errors.New("group has users") return false, errors.New("group has users")
@ -214,7 +214,7 @@ func ConvertToTreeData(groups []*Group, parentId string) []*Group {
return treeData return treeData
} }
func RemoveUserFromGroup(owner, name, groupName string) (bool, error) { func RemoveUserFromGroup(owner, name, groupId string) (bool, error) {
user, err := getUser(owner, name) user, err := getUser(owner, name)
if err != nil { if err != nil {
return false, err return false, err
@ -223,7 +223,7 @@ func RemoveUserFromGroup(owner, name, groupName string) (bool, error) {
return false, errors.New("user not exist") 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"}) affected, err := updateUser(user.GetId(), user, []string{"groups"})
if err != nil { if err != nil {
return false, err return false, err
@ -231,22 +231,22 @@ func RemoveUserFromGroup(owner, name, groupName string) (bool, error) {
return affected != 0, err 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 == "" { if field == "" && value == "" {
return ormer.Engine.Where(builder.Like{"`groups`", groupName}). return ormer.Engine.Where(builder.Like{"`groups`", groupId}).
Count(&User{}) Count(&User{})
} else { } else {
return ormer.Engine.Table("user"). 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+"%"). And(fmt.Sprintf("user.%s LIKE ?", util.CamelToSnakeCase(field)), "%"+value+"%").
Count() 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{} users := []*User{}
session := ormer.Engine.Table("user"). session := ormer.Engine.Table("user").
Where(builder.Like{"`groups`", groupName + "\""}) Where(builder.Like{"`groups`", groupId + "\""})
if offset != -1 && limit != -1 { if offset != -1 && limit != -1 {
session.Limit(limit, offset) session.Limit(limit, offset)
@ -273,10 +273,10 @@ func GetPaginationGroupUsers(groupName string, offset, limit int, field, value,
return users, nil return users, nil
} }
func GetGroupUsers(groupName string) ([]*User, error) { func GetGroupUsers(groupId string) ([]*User, error) {
users := []*User{} users := []*User{}
err := ormer.Engine.Table("user"). err := ormer.Engine.Table("user").
Where(builder.Like{"`groups`", groupName + "\""}). Where(builder.Like{"`groups`", groupId + "\""}).
Find(&users) Find(&users)
if err != nil { if err != nil {
return nil, err return nil, err

View File

@ -230,7 +230,7 @@ func GetUserCount(owner, field, value string, groupName string) (int64, error) {
session := GetSession(owner, -1, -1, field, value, "", "") session := GetSession(owner, -1, -1, field, value, "", "")
if groupName != "" { if groupName != "" {
return GetGroupUserCount(groupName, field, value) return GetGroupUserCount(util.GetId(owner, groupName), field, value)
} }
return session.Count(&User{}) return session.Count(&User{})
@ -274,7 +274,7 @@ func GetPaginationUsers(owner string, offset, limit int, field, value, sortField
users := []*User{} users := []*User{}
if groupName != "" { 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) session := GetSessionForUser(owner, offset, limit, field, value, sortField, sortOrder)

View File

@ -319,7 +319,7 @@ class UserEditPage extends React.Component {
})} })}
> >
{ {
this.state.groups?.map((group) => <Option key={group.name} value={group.name}> this.state.groups?.map((group) => <Option key={group.name} value={`${group.owner}/${group.name}`}>
<Space> <Space>
{group.type === "Physical" ? <UsergroupAddOutlined /> : <HolderOutlined />} {group.type === "Physical" ? <UsergroupAddOutlined /> : <HolderOutlined />}
{group.displayName} {group.displayName}

View File

@ -76,7 +76,7 @@ class UserListPage extends BaseListPage {
phone: Setting.getRandomNumber(), phone: Setting.getRandomNumber(),
countryCode: this.state.organization.countryCodes?.length > 0 ? this.state.organization.countryCodes[0] : "", countryCode: this.state.organization.countryCodes?.length > 0 ? this.state.organization.countryCodes[0] : "",
address: [], address: [],
groups: this.props.groupName ? [this.props.groupName] : [], groups: this.props.groupName ? [`${owner}/${this.props.groupName}`] : [],
affiliation: "Example Inc.", affiliation: "Example Inc.",
tag: "staff", tag: "staff",
region: "", region: "",