sync: 同步 v1.0.4 并脱敏配置与镜像
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// package system
|
||||
// @Link https://github.com/xiujiecn/xiu-admin
|
||||
// @Copyright Copyright (c) 2025 LiXiujie
|
||||
// @Author Lxj <li@xiujie.cn>
|
||||
// @Author Lxj <xxx@example.com>
|
||||
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
|
||||
package system
|
||||
|
||||
@@ -16,6 +16,7 @@ import (
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/bcache"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/contexts"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/event"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/rolepolicy"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/xgorm/handler"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/logic/smsgateway"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model"
|
||||
@@ -317,6 +318,9 @@ func (l *sSysUser) AddUser(ctx context.Context, req *model.SysUserAddModel) (dat
|
||||
return nil, gerror.NewCode(consts.CodeDeptNotFound, "部门不存在")
|
||||
}
|
||||
|
||||
if err := rolepolicy.ValidateUserRoleAssignment(ctx, req.TenantId, req.DeptId, req.RoleIds, nil); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// 判断用户名是否存在(在当前租户下)
|
||||
var user *entity.SysUser
|
||||
err = dao.SysUser.Ctx(ctx).Where(dao.SysUser.Columns().UserName, req.UserName).Where(dao.SysUser.Columns().TenantId, req.TenantId).Scan(&user)
|
||||
@@ -600,6 +604,18 @@ func (l *sSysUser) UpdateUser(ctx context.Context, req *model.SysUserUpdateModel
|
||||
return gerror.NewCode(consts.CodeUserNotFound, "用户不存在")
|
||||
}
|
||||
tenantId := existsUser.TenantId
|
||||
existingRoles, err := l.GetUserRoleIds(ctx, req.UserId)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
deptID := existsUser.DeptId
|
||||
if req.DeptId != nil && *req.DeptId != deptID {
|
||||
deptID = *req.DeptId
|
||||
existingRoles = nil
|
||||
}
|
||||
if err := rolepolicy.ValidateUserRoleAssignment(ctx, tenantId, deptID, req.RoleIds, existingRoles); err != nil {
|
||||
return err
|
||||
}
|
||||
req.UpdatedAt = gtime.Now()
|
||||
req.UpdatedBy = &currUserId
|
||||
_, err = l.Model(ctx).Where(dao.SysUser.Columns().UserId, req.UserId).Data(req).OmitNil().Update()
|
||||
@@ -801,7 +817,7 @@ func (l *sSysUser) UpdateLoginInfo(ctx context.Context, userId int64, loginIp st
|
||||
func (l *sSysUser) GetUserRoleIds(ctx context.Context, userId int64) (roleIds []int64, err error) {
|
||||
urList := make([]*entity.SysUserRole, 0)
|
||||
tenantId := contexts.GetTenantId(ctx)
|
||||
db := dao.SysUserRole.Ctx(ctx).Where(dao.SysUserRole.Columns().UserId, userId)
|
||||
db := dao.SysUserRole.Ctx(ctx).Master().Where(dao.SysUserRole.Columns().UserId, userId)
|
||||
if tenantId != "" {
|
||||
db = db.Where(dao.SysUserRole.Columns().TenantId, tenantId)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user