fix: 拆分商户新增和编辑权限
This commit is contained in:
@@ -35,6 +35,12 @@ func (c *cImTenant) List(ctx context.Context, req *imtenant.ListReq) (res *imten
|
||||
return
|
||||
}
|
||||
|
||||
// Add 新增IM租户
|
||||
func (c *cImTenant) Add(ctx context.Context, req *imtenant.AddReq) (res *imtenant.AddRes, err error) {
|
||||
err = service.SysImTenant().Add(ctx, &req.ImTenantEditInp)
|
||||
return
|
||||
}
|
||||
|
||||
// Edit 更新IM租户
|
||||
func (c *cImTenant) Edit(ctx context.Context, req *imtenant.EditReq) (res *imtenant.EditRes, err error) {
|
||||
err = service.SysImTenant().Edit(ctx, &req.ImTenantEditInp)
|
||||
|
||||
@@ -163,12 +163,39 @@ func (s *sSysImTenant) fillListConfig(ctx context.Context, list []*sysin.ImTenan
|
||||
return
|
||||
}
|
||||
|
||||
// Edit 修改/新增IM租户
|
||||
// Add 新增IM租户
|
||||
func (s *sSysImTenant) Add(ctx context.Context, in *sysin.ImTenantEditInp) (err error) {
|
||||
if err = in.Filter(ctx); err != nil {
|
||||
return
|
||||
}
|
||||
if !isImPlatformAdmin(ctx, contexts.GetUserId(ctx)) {
|
||||
return gerror.New("只有平台管理员可以新增商户")
|
||||
}
|
||||
in.Id = 0
|
||||
return s.saveTenant(ctx, in)
|
||||
}
|
||||
|
||||
// Edit 修改IM租户
|
||||
func (s *sSysImTenant) Edit(ctx context.Context, in *sysin.ImTenantEditInp) (err error) {
|
||||
if err = in.Filter(ctx); err != nil {
|
||||
return
|
||||
}
|
||||
if in.Id <= 0 {
|
||||
return gerror.New("商户ID不能为空")
|
||||
}
|
||||
if !isImPlatformAdmin(ctx, contexts.GetUserId(ctx)) {
|
||||
tenantId := contexts.GetTenantId(ctx)
|
||||
if tenantId <= 0 {
|
||||
return gerror.New("当前管理员未关联IM租户")
|
||||
}
|
||||
if in.Id != tenantId {
|
||||
return gerror.New("无权编辑其它商户")
|
||||
}
|
||||
}
|
||||
return s.saveTenant(ctx, in)
|
||||
}
|
||||
|
||||
func (s *sSysImTenant) saveTenant(ctx context.Context, in *sysin.ImTenantEditInp) (err error) {
|
||||
tenantID := in.Id
|
||||
err = imtenant.RegistryDB().Transaction(ctx, func(ctx context.Context, tx gdb.TX) (err error) {
|
||||
if err = s.checkCodeUnique(ctx, in.Id, in.Code); err != nil {
|
||||
|
||||
@@ -194,7 +194,9 @@ type (
|
||||
Model(ctx context.Context, option ...*handler.Option) *gdb.Model
|
||||
// List 获取IM租户列表
|
||||
List(ctx context.Context, in *sysin.ImTenantListInp) (list []*sysin.ImTenantListModel, totalCount int, err error)
|
||||
// Edit 修改/新增IM租户
|
||||
// Add 新增IM租户
|
||||
Add(ctx context.Context, in *sysin.ImTenantEditInp) (err error)
|
||||
// Edit 修改IM租户
|
||||
Edit(ctx context.Context, in *sysin.ImTenantEditInp) (err error)
|
||||
// View 获取IM租户指定信息
|
||||
View(ctx context.Context, in *sysin.ImTenantViewInp) (res *sysin.ImTenantViewModel, err error)
|
||||
|
||||
Reference in New Issue
Block a user