u
This commit is contained in:
1 parent
5ca04f85ca
commit
d9c49b34db
17 files changed
+452
-175
No files matched your search
@@ -113,7 +113,7 @@ func CreateSpace(ctx context.Context, c *app.RequestContext) {
|
||||
return
|
||||
}
|
||||
|
||||
resp.Id = spaceId
|
||||
resp.SpaceId = spaceId
|
||||
resp.InviteCode = inviteCode
|
||||
|
||||
response.Success(c).Data(resp).Send()
|
||||
@@ -184,6 +184,8 @@ func ExitSpace(ctx context.Context, c *app.RequestContext) {
|
||||
|
||||
resp := new(space.ExitSpaceResult)
|
||||
|
||||
exitSpaceId := req.SpaceId
|
||||
|
||||
userID := middleware.GetUserID(ctx)
|
||||
|
||||
spaceUser, err := db.Queries.GetSpaceUser(ctx, userID)
|
||||
@@ -197,6 +199,11 @@ func ExitSpace(ctx context.Context, c *app.RequestContext) {
|
||||
}
|
||||
}
|
||||
|
||||
if spaceUser.SpaceID != exitSpaceId {
|
||||
response.Success(c).Data(resp).Send()
|
||||
return
|
||||
}
|
||||
|
||||
if spaceUser.Role == 0 {
|
||||
response.Fail(c).Message("请选择解散空间").Send()
|
||||
return
|
||||
@@ -364,8 +371,87 @@ func JoinSpace(ctx context.Context, c *app.RequestContext) {
|
||||
return
|
||||
}
|
||||
|
||||
resp.Id = spaceByInviteCode.ID
|
||||
resp.Name = spaceByInviteCode.Name.String
|
||||
resp.SpaceId = spaceByInviteCode.ID
|
||||
resp.SpaceName = spaceByInviteCode.Name.String
|
||||
|
||||
response.Success(c).Data(resp).Send()
|
||||
}
|
||||
|
||||
// UpdateSpaceUserRole .
|
||||
// @router /space/updateRole [POST]
|
||||
func UpdateSpaceUserRole(ctx context.Context, c *app.RequestContext) {
|
||||
var err error
|
||||
var req space.UpdateSpaceUserRoleParams
|
||||
err = c.BindAndValidate(&req)
|
||||
if err != nil {
|
||||
c.String(consts.StatusBadRequest, err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
resp := new(space.UpdateSpaceUserRoleResult)
|
||||
|
||||
userID := middleware.GetUserID(ctx)
|
||||
spaceID := req.SpaceId
|
||||
updateUserID := req.UserId
|
||||
|
||||
hasPermission, err := hasSpacePermission(ctx, userID, spaceID)
|
||||
|
||||
if err != nil {
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if !hasPermission {
|
||||
response.Fail(c).Message("无权限操作该空间").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 检查是否在该空间
|
||||
updateSpaceUser, err := db.Queries.GetSpaceUser(ctx, updateUserID)
|
||||
|
||||
if err != nil {
|
||||
if errorx.IsNotFound(err) {
|
||||
response.Fail(c).Message("授权失败,该用户不在该空间").Send()
|
||||
return
|
||||
}
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
if updateSpaceUser.SpaceID != spaceID {
|
||||
response.Fail(c).Message("授权失败,该用户不在该空间").Send()
|
||||
return
|
||||
}
|
||||
|
||||
// 更新
|
||||
err = db.WithTx(ctx, func(q *repo.Queries) error {
|
||||
err2 := q.UpdateSpaceUserRole(ctx, repo.UpdateSpaceUserRoleParams{
|
||||
Role: 1,
|
||||
SpaceID: spaceID,
|
||||
UserID: userID,
|
||||
})
|
||||
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
|
||||
err2 = q.UpdateSpaceUserRole(ctx, repo.UpdateSpaceUserRoleParams{
|
||||
Role: 0,
|
||||
SpaceID: spaceID,
|
||||
UserID: updateUserID,
|
||||
})
|
||||
|
||||
if err2 != nil {
|
||||
return err2
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
errorx.AddError(c, err)
|
||||
return
|
||||
}
|
||||
|
||||
response.Success(c).Data(resp).Send()
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user