fix: 角色删除前校验分配情况,禁止删除使用中的角色
角色被删除后,其关联的账号-角色记录未清理,导致 CountByAccountID 统计到孤儿记录,使被分配该角色的账号无法重新分配新角色。 修复方案:删除角色前检查 tb_account_role 和 tb_shop_role, 若仍有账号或店铺持有该角色则返回 1028 错误,强制管理员显式 解除所有分配后再删除,保证数据一致性与审计完整性。
This commit is contained in:
@@ -37,6 +37,7 @@ const (
|
||||
CodeInvalidPermCode = 1025 // 权限编码格式不正确
|
||||
CodeRoleAlreadyAssigned = 1026 // 角色已分配
|
||||
CodePermAlreadyAssigned = 1027 // 权限已分配
|
||||
CodeRoleInUse = 1028 // 角色使用中,无法删除
|
||||
|
||||
// 认证相关错误 (1040-1049)
|
||||
CodeInvalidCredentials = 1040 // 用户名或密码错误
|
||||
@@ -201,6 +202,7 @@ var allErrorCodes = []int{
|
||||
CodeInvalidPermCode,
|
||||
CodeRoleAlreadyAssigned,
|
||||
CodePermAlreadyAssigned,
|
||||
CodeRoleInUse,
|
||||
CodeShopNotFound,
|
||||
CodeShopCodeExists,
|
||||
CodeShopLevelExceeded,
|
||||
@@ -340,6 +342,7 @@ var errorMessages = map[int]string{
|
||||
CodeInvalidPermCode: "权限编码格式不正确(应为 module:action 格式)",
|
||||
CodeRoleAlreadyAssigned: "角色已分配",
|
||||
CodePermAlreadyAssigned: "权限已分配",
|
||||
CodeRoleInUse: "角色使用中,无法删除",
|
||||
CodeShopNotFound: "店铺不存在",
|
||||
CodeShopCodeExists: "店铺编号已存在",
|
||||
CodeShopLevelExceeded: "店铺层级不能超过 7 级",
|
||||
|
||||
Reference in New Issue
Block a user