feat: add tenant-aware IM management console
This commit is contained in:
@@ -467,6 +467,29 @@ func (s *sAdminMember) Edit(ctx context.Context, in *adminin.MemberEditInp) (err
|
||||
return
|
||||
}
|
||||
|
||||
if service.AdminMember().VerifySuperId(ctx, opMemberId) {
|
||||
if in.TenantId > 0 {
|
||||
count, queryErr := g.DB("imRegistry").Model(dao.ImTenant.Table()).Safe().Ctx(ctx).
|
||||
Where(dao.ImTenant.Columns().Id, in.TenantId).
|
||||
Where(dao.ImTenant.Columns().State, consts.ImTenantStateActive).
|
||||
Count()
|
||||
if queryErr != nil {
|
||||
return gerror.Wrap(queryErr, "校验IM租户失败")
|
||||
}
|
||||
if count == 0 {
|
||||
return gerror.New("IM租户不存在或未启用")
|
||||
}
|
||||
}
|
||||
} else if deptType := contexts.GetDeptType(ctx); deptType == consts.DeptTypeTenant ||
|
||||
deptType == consts.DeptTypeMerchant || deptType == consts.DeptTypeUser {
|
||||
in.TenantId = contexts.GetTenantId(ctx)
|
||||
if in.TenantId <= 0 {
|
||||
return gerror.New("当前管理员未关联租户")
|
||||
}
|
||||
} else {
|
||||
in.TenantId = 0
|
||||
}
|
||||
|
||||
cols := dao.AdminMember.Columns()
|
||||
err = s.VerifyUnique(ctx, &adminin.VerifyUniqueInp{
|
||||
Id: in.Id,
|
||||
|
||||
@@ -228,6 +228,7 @@ func (s *sAdminSite) handleLogin(ctx context.Context, mb *entity.AdminMember) (r
|
||||
|
||||
user := &model.Identity{
|
||||
Id: mb.Id,
|
||||
TenantId: mb.TenantId,
|
||||
Pid: mb.Pid,
|
||||
DeptId: dept.Id,
|
||||
DeptType: dept.Type,
|
||||
@@ -319,6 +320,7 @@ func (s *sAdminSite) BindUserContext(ctx context.Context, claims *model.Identity
|
||||
|
||||
user := &model.Identity{
|
||||
Id: mb.Id,
|
||||
TenantId: mb.TenantId,
|
||||
Pid: mb.Pid,
|
||||
DeptId: dept.Id,
|
||||
DeptType: dept.Type,
|
||||
|
||||
Reference in New Issue
Block a user