u
This commit is contained in:
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
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user