This commit is contained in:
oneao committed 2025-12-05 17:28:46 +08:00
1 parent 33ab76f73e
commit 3af982d669
31 files changed
+632 -316

No files matched your search

@@ -89,7 +89,7 @@ func ListSpaceUsers(ctx context.Context, c *app.RequestContext) {
response.Success(c).Data(resp).Send()
}
// RemoveSpaceUser .
// RemoveSpaceUser 移除空间用户
// @router /space/user/remove [POST]
func RemoveSpaceUser(ctx context.Context, c *app.RequestContext) {
var req space.RemoveSpaceUserParams
@@ -98,17 +98,17 @@ func RemoveSpaceUser(ctx context.Context, c *app.RequestContext) {
return
}
spaceId := req.SpaceId
delUserId := req.UserId
userID := middleware.GetUserID(ctx)
delUserID := req.UserId
currentUserID := middleware.GetUserID(ctx)
if userID == delUserId {
// 不能删除自己
if currentUserID == delUserID {
response.Fail(c).Message("请退出空间或解散空间").Send()
return
}
// 当前操作者信息
spaceUser, err := db.Queries.GetSpaceUserByUserId(ctx, userID)
// 获取当前操作者所在空间及角色
spaceUser, err := db.Queries.GetSpaceUserByUserId(ctx, currentUserID)
if err != nil {
if errorx.IsNotFound(err) {
response.Fail(c).Message("权限不足").Send()
@@ -118,36 +118,31 @@ func RemoveSpaceUser(ctx context.Context, c *app.RequestContext) {
return
}
if spaceUser.SpaceID != spaceId {
response.Fail(c).Message("权限不足").Send()
return
}
// 检查权限
if spaceUser.Role != 0 && spaceUser.Role != 1 {
response.Fail(c).Message("权限不足").Send()
return
}
// 被踢用户是否在该空间
targetUser, err := db.Queries.GetSpaceUserByUserId(ctx, delUserId)
// 获取待删除用户的空间信息
delUserSpace, err := db.Queries.GetSpaceByUserId(ctx, delUserID)
if err != nil {
if errorx.IsNotFound(err) {
response.Success(c).Message("用户不在空间").Send()
response.Fail(c).Message("待删除用户不存在或权限不足").Send()
return
}
errorx.AddError(c, err)
return
}
if targetUser.SpaceID != spaceId {
response.Fail(c).Message("用户不在该空间").Send()
// 校验是否在同一个空间
if spaceUser.SpaceID != delUserSpace.ID {
response.Fail(c).Message("权限不足").Send()
return
}
// 删除
err = db.Queries.DeleteSpaceUser(ctx, delUserId)
if err != nil {
// 删除用户
if err := db.Queries.DeleteSpaceUser(ctx, delUserID); err != nil {
errorx.AddError(c, err)
return
}