【修复】修复增加数据库操作日志后,Api接口端开启适配报错的问题。

This commit is contained in:
JianWeie
2022-04-11 16:29:12 +08:00
parent 43f1f4d811
commit 0da58b2aaf
6 changed files with 59 additions and 13 deletions

View File

@@ -38,11 +38,14 @@ namespace CoreCms.Net.Filter
/// 反射获取所有controller 和action
/// </summary>
/// <returns></returns>
private static ControllerPermissionResult GetAllControllerAndActionByAssembly()
private static ControllerPermissionResult GetAllControllerAndActionByAssembly(string dataSources)
{
var result = new List<ControllerPermission>();
var types = Assembly.Load("CoreCms.Net.Web.Admin").GetTypes();
var types = dataSources == GlobalEnumVars.CoreShopSystemCategory.Admin.ToString() ? Assembly.Load("CoreCms.Net.Web.Admin").GetTypes() :
dataSources == GlobalEnumVars.CoreShopSystemCategory.Api.ToString() ? Assembly.Load("CoreCms.Net.Web.WebApi").GetTypes() : null;
//var types = Assembly.Load("CoreCms.Net.Web.Admin").GetTypes();
var noController = new[] { "ToolsController", "LoginController", "DemoController" };
@@ -136,30 +139,30 @@ namespace CoreCms.Net.Filter
/// 获取缓存ActionPermission
/// </summary>
/// <returns></returns>
public static List<ActionPermission> GetCacheCoreCmsActionPermission()
public static List<ActionPermission> GetCacheCoreCmsActionPermission(string dataSources)
{
var memoryCacheManager = new MemoryCacheManager();
var cache = memoryCacheManager.Get<List<ActionPermission>>(CacheCoreCmsActionPermission);
return cache ?? UpdateCacheCoreCmsActionPermission().Actions;
return cache ?? UpdateCacheCoreCmsActionPermission(dataSources).Actions;
}
/// <summary>
/// 获取缓存ControllerPermission名称
/// </summary>
/// <returns></returns>
public static List<ControllerPermission> GetCacheCoreCmsControllerPermission()
public static List<ControllerPermission> GetCacheCoreCmsControllerPermission(string dataSources)
{
var memoryCacheManager = new MemoryCacheManager();
var cache = memoryCacheManager.Get<List<ControllerPermission>>(CacheCoreCmsControllerPermission);
return cache ?? UpdateCacheCoreCmsActionPermission().ControllersAndActions;
return cache ?? UpdateCacheCoreCmsActionPermission(dataSources).ControllersAndActions;
}
/// <summary>
/// 更新cache
/// </summary>
private static ControllerPermissionResult UpdateCacheCoreCmsActionPermission()
private static ControllerPermissionResult UpdateCacheCoreCmsActionPermission(string dataSources)
{
var list = GetAllControllerAndActionByAssembly();
var list = GetAllControllerAndActionByAssembly(dataSources);
var memoryCacheManager = new MemoryCacheManager();
//缓存24小时
memoryCacheManager.Set(CacheCoreCmsControllerPermission, list.ControllersAndActions, 1440);

View File

@@ -85,7 +85,7 @@ namespace CoreCms.Net.Middlewares
uLog.userId = authenticate.Principal.Identities.First().FindFirst(JwtRegisteredClaimNames.Jti)!.Value.ObjectToInt(0);
}
var adminLog = AdminsControllerPermission.GetCacheCoreCmsActionPermission();
var adminLog = AdminsControllerPermission.GetCacheCoreCmsActionPermission(_dataSources);
var curLog = adminLog.FirstOrDefault(p => p.path.ToLower() == _httpContextAccessor.HttpContext.Request.Path.Value.ToLower());
if (curLog != null)

View File

@@ -345,7 +345,7 @@ namespace CoreCms.Net.Web.Admin.Controllers
public AdminUiCallBack GetAllControllerAndActionByAssembly()
{
var jm = new AdminUiCallBack();
var data = AdminsControllerPermission.GetCacheCoreCmsControllerPermission();
var data = AdminsControllerPermission.GetCacheCoreCmsControllerPermission(GlobalEnumVars.CoreShopSystemCategory.Admin.ToString());
jm.data = data.OrderBy(u => u.name).ToList();
jm.code = 0;
jm.msg = "获取成功";

View File

@@ -4803,6 +4803,49 @@
<param name="entity"></param>
<returns></returns>
</member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController">
<summary>
用户操作日志
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.#ctor(Microsoft.AspNetCore.Hosting.IWebHostEnvironment,CoreCms.Net.IServices.ISysUserOperationLogServices)">
<summary>
构造函数
</summary>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetPageList">
<summary>
获取列表
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetIndex">
<summary>
首页数据
</summary>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.DoDelete(CoreCms.Net.Model.FromBody.FMIntId)">
<summary>
单选删除
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.DoBatchDelete(CoreCms.Net.Model.FromBody.FMArrayIntIds)">
<summary>
批量删除
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="M:CoreCms.Net.Web.Admin.Controllers.SysUserOperationLogController.GetDetails(CoreCms.Net.Model.FromBody.FMIntId)">
<summary>
预览数据
</summary>
<param name="entity"></param>
<returns></returns>
</member>
<member name="T:CoreCms.Net.Web.Admin.Controllers.SysUserRoleController">
<summary>
用户角色关联表

View File

@@ -48,7 +48,7 @@
"RecordAccessLogs": {
"Enabled": true, //是否开启记录操作日志功能。
"EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启)
"EnabledDbMode": true, //是否开启记录到数据库模式。(影响效率,接口不建议开启)
"EnabledDbMode": true, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。
"IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔
},
//记录IP请求数据

View File

@@ -46,9 +46,9 @@
},
//记录用户方访问数据
"RecordAccessLogs": {
"Enabled": true, //是否开启记录操作日志功能。
"Enabled": false, //是否开启记录操作日志功能。
"EnabledFileMode": false, //是否开启记录到文件功能。(影响效率,接口不建议开启)
"EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,接口不建议开启)
"EnabledDbMode": false, //是否开启记录到数据库模式。(影响效率,后台可开启,接口不建议开启,因为数据库会存储大量的用于请求数据和返回数据。
"IgnoreApis": "/api/tools/getuserinfo,/api/tools/getNavs,/api/CodeGenerator/CodeGenDown" //使用小写逗号分隔
},
//记录IP请求数据