Selaa lähdekoodia

!1348 限制删除被开放接口绑定的用户、租户
Merge pull request !1348 from Lzh666/N/A

zuohuaijun 1 vuosi sitten
vanhempi
commit
93a105e1d5

+ 12 - 0
Admin.NET/Admin.NET.Core/Enum/ErrorCodeEnum.cs

@@ -211,6 +211,18 @@ public enum ErrorCodeEnum
     [ErrorCodeItemMetadata("系统默认账号禁止删除")]
     D1029,
 
+    /// <summary>
+    /// 开放接口绑定账号禁止删除
+    /// </summary>
+    [ErrorCodeItemMetadata("开放接口绑定账号禁止删除")]
+    D1030,
+
+    /// <summary>
+    /// 开放接口绑定租户禁止删除
+    /// </summary>
+    [ErrorCodeItemMetadata("开放接口绑定租户禁止删除")]
+    D1031,
+
     /// <summary>
     /// 父机构不存在
     /// </summary>

+ 5 - 0
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -261,6 +261,11 @@ public class SysTenantService : IDynamicApiController, ITransient
         if (input.Id.ToString() == SqlSugarConst.MainConfigId)
             throw Oops.Oh(ErrorCodeEnum.D1023);
 
+        // 若账号为开放接口绑定租户则禁止删除
+        var isOpenAccessTenant = await _sysTenantRep.ChangeRepository<SqlSugarRepository<SysOpenAccess>>().IsAnyAsync(u => u.BindTenantId == input.Id);
+        if (isOpenAccessTenant)
+            throw Oops.Oh(ErrorCodeEnum.D1031);
+
         await _sysTenantRep.DeleteAsync(u => u.Id == input.Id);
 
         await CacheTenant(input.Id);

+ 6 - 0
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -169,11 +169,17 @@ public class SysUserService : IDynamicApiController, ITransient
             throw Oops.Oh(ErrorCodeEnum.D1014);
         if (user.Id == _userManager.UserId)
             throw Oops.Oh(ErrorCodeEnum.D1001);
+
         // 若账号为租户默认账号则禁止删除
         var isTenantUser = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysTenant>>().IsAnyAsync(u => u.UserId == input.Id);
         if (isTenantUser)
             throw Oops.Oh(ErrorCodeEnum.D1029);
 
+        // 若账号为开放接口绑定账号则禁止删除
+        var isOpenAccessUser = await _sysUserRep.ChangeRepository<SqlSugarRepository<SysOpenAccess>>().IsAnyAsync(u => u.BindUserId == input.Id);
+        if (isOpenAccessUser)
+            throw Oops.Oh(ErrorCodeEnum.D1030);
+
         // 强制下线
         await _sysOnlineUserService.ForceOffline(user.Id);