소스 검색

😎角色、文件导入、自定义日志等优化(建议升级到此版本)

zuohuaijun 2 년 전
부모
커밋
c1e660b7d3

+ 6 - 6
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -19,10 +19,10 @@
     <PackageReference Include="AspNet.Security.OAuth.Gitee" Version="6.0.15" />
     <PackageReference Include="AspNet.Security.OAuth.Weixin" Version="6.0.15" />
     <PackageReference Include="AspNetCoreRateLimit" Version="5.0.0" />
-    <PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.13.8" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.2.25" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.2.25" />
-    <PackageReference Include="Furion.Pure" Version="4.9.2.25" />
+    <PackageReference Include="Elastic.Clients.Elasticsearch" Version="8.13.10" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="4.9.2.31" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="4.9.2.31" />
+    <PackageReference Include="Furion.Pure" Version="4.9.2.31" />
     <PackageReference Include="IPTools.China" Version="1.6.0" />
     <PackageReference Include="IPTools.International" Version="1.6.0" />
     <PackageReference Include="Lazy.Captcha.Core" Version="2.0.6" />
@@ -39,8 +39,8 @@
     <PackageReference Include="SixLabors.ImageSharp.Web" Version="3.1.2" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="3.0.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="3.2.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.4.152" />
-    <PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.12" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.4.153" />
+    <PackageReference Include="System.Linq.Dynamic.Core" Version="1.3.13" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
     <PackageReference Include="Microsoft.AspNetCore.DataProtection.StackExchangeRedis" Version="6.0.29" />

+ 2 - 1
Admin.NET/Admin.NET.Core/Logging/DatabaseLoggingWriter.cs

@@ -45,7 +45,8 @@ public class DatabaseLoggingWriter : IDatabaseLoggingWriter, IDisposable
                 TraceId = logMsg.TraceId,
                 Exception = logMsg.Exception == null ? null : JSON.Serialize(logMsg.Exception),
                 Message = logMsg.Message,
-                LogLevel = logMsg.LogLevel
+                LogLevel = logMsg.LogLevel,
+                Status = "200",
             }).ExecuteCommandAsync();
             return;
         }

+ 5 - 3
Admin.NET/Admin.NET.Core/Service/Role/SysRoleService.cs

@@ -43,7 +43,8 @@ public class SysRoleService : IDynamicApiController, ITransient
     public async Task<SqlSugarPagedList<SysRole>> Page(PageRoleInput input)
     {
         return await _sysRoleRep.AsQueryable()
-            .WhereIF(!_userManager.SuperAdmin, u => u.CreateUserId == _userManager.UserId) // 若非超管,则只能操作自己创建的角色
+            .WhereIF(!_userManager.SuperAdmin, u => u.TenantId == _userManager.TenantId) // 若非超管,则只能操作本租户的角色
+            .WhereIF(!_userManager.SuperAdmin && !_userManager.SysAdmin, u => u.CreateUserId == _userManager.UserId) // 若非超管且非系统管理员,则只能操作自己创建的角色
             .WhereIF(!string.IsNullOrWhiteSpace(input.Name), u => u.Name.Contains(input.Name))
             .WhereIF(!string.IsNullOrWhiteSpace(input.Code), u => u.Code.Contains(input.Code))
             .OrderBy(u => u.OrderNo)
@@ -58,10 +59,11 @@ public class SysRoleService : IDynamicApiController, ITransient
     public async Task<List<RoleOutput>> GetList()
     {
         // 当前用户已拥有的角色集合
-        var roleIdList = _userManager.SuperAdmin ? null : await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
+        var roleIdList = _userManager.SuperAdmin ? new List<long>() : await _sysUserRoleService.GetUserRoleIdList(_userManager.UserId);
 
         return await _sysRoleRep.AsQueryable()
-            .WhereIF(roleIdList != null, u => u.CreateUserId == _userManager.UserId || roleIdList.Contains(u.Id)) // 若非超管,则只显示自己创建和已拥有的角色
+            .WhereIF(!_userManager.SuperAdmin, u => u.TenantId == _userManager.TenantId) // 若非超管,则只能操作本租户的角色
+            .WhereIF(!_userManager.SuperAdmin && !_userManager.SysAdmin, u => u.CreateUserId == _userManager.UserId || roleIdList.Contains(u.Id)) // 若非超管且非系统管理员,则只显示自己创建和已拥有的角色
             .OrderBy(u => u.OrderNo).Select<RoleOutput>().ToListAsync();
     }
 

+ 5 - 0
Admin.NET/Admin.NET.Core/Service/User/UserManager.cs

@@ -38,6 +38,11 @@ public class UserManager : IScoped
     /// </summary>
     public bool SuperAdmin => _httpContextAccessor.HttpContext?.User.FindFirst(ClaimConst.AccountType)?.Value == ((int)AccountTypeEnum.SuperAdmin).ToString();
 
+    /// <summary>
+    /// 是否系统管理员
+    /// </summary>
+    public bool SysAdmin => _httpContextAccessor.HttpContext?.User.FindFirst(ClaimConst.AccountType)?.Value == ((int)AccountTypeEnum.SysAdmin).ToString();
+
     /// <summary>
     /// 组织机构Id
     /// </summary>

+ 3 - 8
Admin.NET/Admin.NET.Core/Util/CommonUtil.cs

@@ -100,7 +100,6 @@ public static class CommonUtil
         }
     }
 
-
     /// <summary>
     /// 导出模板Excel
     /// </summary>
@@ -114,8 +113,6 @@ public static class CommonUtil
         return new FileStreamResult(new FileStream(res.FileName, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
     }
 
-
-
     /// <summary>
     /// 导出模板Excel
     /// </summary>
@@ -129,12 +126,12 @@ public static class CommonUtil
         return await (Task<IActionResult>)closedGenerateTemplateMethod.Invoke(null, new object[] { fileName });
     }
 
-
     /// <summary>
     /// 导入数据Excel
     /// </summary>
     /// <typeparam name="T"></typeparam>
     /// <param name="file"></param>
+    /// <param name="importResultCallback"></param>
     /// <returns></returns>
     public static async Task<ICollection<T>> ImportExcelData<T>([Required] IFormFile file, Func<ImportResult<T>, ImportResult<T>> importResultCallback = null) where T : class, new()
     {
@@ -143,7 +140,7 @@ public static class CommonUtil
         var errorFileUrl = Path.Combine(newFile.FilePath, newFile.Id.ToString() + "_" + newFile.Suffix);
 
         IImporter importer = new ExcelImporter();
-        var res = await importer.Import<T>(filePath,importResultCallback);
+        var res = await importer.Import<T>(filePath, importResultCallback);
         if (res == null || res.Exception != null)
             throw Oops.Oh("导入异常:" + res.Exception);
         if (res.HasError)
@@ -160,8 +157,6 @@ public static class CommonUtil
         return res.Data;
     }
 
-
-
     /// <summary>
     /// 导入数据Excel
     /// </summary>
@@ -172,7 +167,7 @@ public static class CommonUtil
     {
         MethodInfo importMethod = typeof(CommonUtil).GetMethods().FirstOrDefault(p => p.Name == "ImportExcelData" && p.IsGenericMethodDefinition);
         MethodInfo closedImportMethod = importMethod.MakeGenericMethod(dataDto.GetType());
-        var parameters=importMethod.GetParameters();
+        var parameters = importMethod.GetParameters();
         var task = (Task)closedImportMethod.Invoke(null, new object[] { file, parameters[1].DefaultValue });
         await task;
         return task.GetType().GetProperty("Result").GetValue(task);

+ 1 - 1
Admin.NET/Plugins/Admin.NET.Plugin.ReZero/Admin.NET.Plugin.ReZero.csproj

@@ -24,7 +24,7 @@
   </ItemGroup>
 
   <ItemGroup>
-    <PackageReference Include="Rezero.Api" Version="1.0.19" />
+    <PackageReference Include="Rezero.Api" Version="1.0.30" />
   </ItemGroup>  
 
   <ItemGroup>