sql日志打印输出配置
This commit is contained in:
@@ -21,7 +21,7 @@ namespace Yi.Framework.Core
|
||||
}
|
||||
|
||||
//无需授权情况
|
||||
var userName = httpContext.GetUserNameInfo();
|
||||
var userName = httpContext?.GetUserNameInfo();
|
||||
if (userName is null)
|
||||
{
|
||||
return;
|
||||
@@ -35,54 +35,57 @@ namespace Yi.Framework.Core
|
||||
|
||||
//这里可以优化一下
|
||||
//根据缓存获取全部用户信息
|
||||
var userRoleMenu = ServiceLocator.Instance.GetService<CacheInvoker>().Get<UserRoleMenuDto>("用户id");
|
||||
var userRoleMenu = ServiceLocator.Instance?.GetService<CacheInvoker>()?.Get<UserRoleMenuDto>("用户id");
|
||||
|
||||
|
||||
var roles = userRoleMenu.Roles;
|
||||
var roles = userRoleMenu?.Roles;
|
||||
if (roles.IsNull())
|
||||
{
|
||||
roles = new();
|
||||
}
|
||||
//先测试部门就是LEBG
|
||||
long deptId = userRoleMenu.User.DeptId??-1;
|
||||
long userId = httpContext.GetUserIdInfo();
|
||||
long deptId = userRoleMenu?.User.DeptId ?? -1;
|
||||
long userId = httpContext?.GetUserIdInfo()??-1;
|
||||
//根据角色的数据范围,来添加相对于的数据权限
|
||||
foreach (var role in roles)
|
||||
if (roles is not null)
|
||||
{
|
||||
//默认为全部
|
||||
DataScopeEnum dataScope = (DataScopeEnum)(role.DataScope?? DataScopeEnum.ALL.GetHashCode());
|
||||
switch (dataScope)
|
||||
foreach (var role in roles)
|
||||
{
|
||||
case DataScopeEnum.ALL:
|
||||
//直接放行
|
||||
break;
|
||||
case DataScopeEnum.DEPT:
|
||||
//只能查询到自己的部门的数据
|
||||
db.QueryFilter.Add(new TableFilterItem<UserEntity>(it => it.DeptId == deptId, true));
|
||||
break;
|
||||
case DataScopeEnum.USER:
|
||||
//只能查询到自己
|
||||
db.QueryFilter.Add(new TableFilterItem<UserEntity>(it => it.Id == userId, true));
|
||||
break;
|
||||
case DataScopeEnum.CUSTOM:
|
||||
//自定义查询
|
||||
var filter = new TableFilterItem<UserEntity>(it => SqlFunc.Subqueryable<RoleDeptEntity>().Where(f => f.DeptId == it.DeptId && f.RoleId == (long)role.Id).Any(), true);
|
||||
db.QueryFilter.Add(filter);
|
||||
break;
|
||||
case DataScopeEnum.DEPT_FOLLOW:
|
||||
//放行自己部门及以下
|
||||
var allChildDepts = db.Queryable<DeptEntity>().ToChildList(it => it.ParentId, deptId);
|
||||
|
||||
var filter1 = new TableFilterItem<UserEntity>(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.DeptId??-1), true);
|
||||
//默认为全部
|
||||
DataScopeEnum dataScope = (DataScopeEnum)(role.DataScope ?? DataScopeEnum.ALL.GetHashCode());
|
||||
switch (dataScope)
|
||||
{
|
||||
case DataScopeEnum.ALL:
|
||||
//直接放行
|
||||
break;
|
||||
case DataScopeEnum.DEPT:
|
||||
//只能查询到自己的部门的数据
|
||||
db.QueryFilter.Add(new TableFilterItem<UserEntity>(it => it.DeptId == deptId, true));
|
||||
break;
|
||||
case DataScopeEnum.USER:
|
||||
//只能查询到自己
|
||||
db.QueryFilter.Add(new TableFilterItem<UserEntity>(it => it.Id == userId, true));
|
||||
break;
|
||||
case DataScopeEnum.CUSTOM:
|
||||
//自定义查询
|
||||
var filter = new TableFilterItem<UserEntity>(it => SqlFunc.Subqueryable<RoleDeptEntity>().Where(f => f.DeptId == it.DeptId && f.RoleId == (long)role.Id).Any(), true);
|
||||
db.QueryFilter.Add(filter);
|
||||
break;
|
||||
case DataScopeEnum.DEPT_FOLLOW:
|
||||
//放行自己部门及以下
|
||||
var allChildDepts = db.Queryable<DeptEntity>().ToChildList(it => it.ParentId, deptId);
|
||||
|
||||
db.QueryFilter.Add(filter1);
|
||||
var filter1 = new TableFilterItem<UserEntity>(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.DeptId ?? -1), true);
|
||||
|
||||
//部门无需过滤
|
||||
//var filter2 = new TableFilterItem<DeptEntity>(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.Id),true);
|
||||
//db.QueryFilter.Add(filter2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
db.QueryFilter.Add(filter1);
|
||||
|
||||
//部门无需过滤
|
||||
//var filter2 = new TableFilterItem<DeptEntity>(it => allChildDepts.Select(f => f.Id).ToList().Contains(it.Id),true);
|
||||
//db.QueryFilter.Add(filter2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,7 @@ namespace Yi.Framework.WebCore.DbExtend
|
||||
|
||||
if (Appsettings.appBool("DbSeed_Enabled"))
|
||||
{
|
||||
var _Db = app.ApplicationServices.GetService<ISqlSugarClient>();
|
||||
var _Db = app.ApplicationServices.GetRequiredService<ISqlSugarClient>();
|
||||
Invoer(_Db);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user