u
This commit is contained in:
1 parent
59d3be2299
commit
33ab76f73e
13 files changed
+172
-374
No files matched your search
@@ -155,82 +155,6 @@ func RemoveSpaceUser(ctx context.Context, c *app.RequestContext) {
|
||||
response.Success(c).Message("移除成功").Send()
|
||||
}
|
||||
|
||||
// UpdateSpaceUserRole .
|
||||
// @router /space/user/updateRole [POST]
|
||||
func UpdateSpaceUserRole(ctx context.Context, c *app.RequestContext) {
|
||||
var req space.UpdateSpaceUserRoleParams
|
||||
if err := c.BindAndValidate(&req); err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
// 1. 获取当前操作者信息
|
||||
userID := middleware.GetUserID(ctx)
|
||||
operator, err := db.Queries.GetSpaceUserByUserId(ctx, userID)
|
||||
if err != nil {
|
||||
if errorx.IsNotFound(err) {
|
||||
response.Fail(c).Message("权限不足").Send()
|
||||
return
|
||||
}
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
// 2. 检查操作者是否属于该空间
|
||||
if operator.SpaceID != req.SpaceId {
|
||||
response.Fail(c).Message("权限不足").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 3. 权限检查:只有创建者可以修改他人角色
|
||||
// 假设 Role: 0=创建者, 1=管理员, 2=普通成员
|
||||
if operator.Role != 0 {
|
||||
response.Fail(c).Message("权限不足").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 3.1 不允许修改自己的角色
|
||||
if operator.UserID == req.UserId {
|
||||
response.Fail(c).Message("不能修改自己的角色").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 4. 校验目标 Role 是否合法
|
||||
if req.Role != 1 && req.Role != 2 {
|
||||
response.Fail(c).Message("角色修改错误").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 5. 获取被修改的用户
|
||||
targetUser, err := db.Queries.GetSpaceUserByUserId(ctx, req.UserId)
|
||||
if err != nil {
|
||||
if errorx.IsNotFound(err) {
|
||||
response.Fail(c).Message("目标用户不存在").Send()
|
||||
return
|
||||
}
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if targetUser.SpaceID != req.SpaceId {
|
||||
response.Fail(c).Message("目标用户不在该空间").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 6. 执行更新
|
||||
err = db.Queries.UpdateSpaceUserRole(ctx, repo.UpdateSpaceUserRoleParams{
|
||||
SpaceID: req.SpaceId,
|
||||
UserID: req.UserId,
|
||||
Role: req.Role,
|
||||
})
|
||||
if err != nil {
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c).Send()
|
||||
}
|
||||
|
||||
// JoinSpace .
|
||||
// @router /space/user/join [POST]
|
||||
func JoinSpace(ctx context.Context, c *app.RequestContext) {
|
||||
@@ -275,7 +199,7 @@ func JoinSpace(ctx context.Context, c *app.RequestContext) {
|
||||
ID: idgen.NextId(),
|
||||
SpaceID: spaceByCode.ID,
|
||||
UserID: userID,
|
||||
Role: 2,
|
||||
Role: 1,
|
||||
}
|
||||
|
||||
err = db.Queries.InsertSpaceUser(ctx, params)
|
||||
|
||||
Reference in new issue
Block a user