⚡ 优化功能
This commit is contained in:
parent
2bc2911718
commit
f78ccc2b4c
@ -157,6 +157,7 @@ namespace Infrastructure
|
|||||||
{
|
{
|
||||||
new Claim(ClaimTypes.PrimarySid, user.UserId.ToString()),
|
new Claim(ClaimTypes.PrimarySid, user.UserId.ToString()),
|
||||||
new Claim(ClaimTypes.Name, user.UserName),
|
new Claim(ClaimTypes.Name, user.UserName),
|
||||||
|
new Claim(ClaimTypes.GroupSid, user.DeptId.ToString()),
|
||||||
new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(user))
|
new Claim(ClaimTypes.UserData, JsonConvert.SerializeObject(user))
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -19,6 +19,7 @@ namespace Infrastructure
|
|||||||
types.GetProperty("CreateBy", flag)?.SetValue(source, context.GetName(), null);
|
types.GetProperty("CreateBy", flag)?.SetValue(source, context.GetName(), null);
|
||||||
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetName(), null);
|
types.GetProperty("Create_by", flag)?.SetValue(source, context.GetName(), null);
|
||||||
types.GetProperty("UserId", flag)?.SetValue(source, context.GetUId(), null);
|
types.GetProperty("UserId", flag)?.SetValue(source, context.GetUId(), null);
|
||||||
|
types.GetProperty("DeptId", flag)?.SetValue(source, context.GetDeptId(), null);
|
||||||
|
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -80,6 +80,17 @@ namespace Infrastructure.Extensions
|
|||||||
return !string.IsNullOrEmpty(uid) ? long.Parse(uid) : 0;
|
return !string.IsNullOrEmpty(uid) ? long.Parse(uid) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 获取部门id
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="context"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static long GetDeptId(this HttpContext context)
|
||||||
|
{
|
||||||
|
var deptId = context.User.FindFirstValue(ClaimTypes.GroupSid);
|
||||||
|
return !string.IsNullOrEmpty(deptId) ? long.Parse(deptId) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 获取登录用户名
|
/// 获取登录用户名
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
using Lazy.Captcha.Core;
|
using Lazy.Captcha.Core;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Microsoft.Extensions.Options;
|
|
||||||
using ZR.Admin.WebApi.Filters;
|
using ZR.Admin.WebApi.Filters;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
using ZR.Model.System.Dto;
|
using ZR.Model.System.Dto;
|
||||||
@ -15,8 +14,6 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
[ApiExplorerSettings(GroupName = "sys")]
|
[ApiExplorerSettings(GroupName = "sys")]
|
||||||
public class SysLoginController : BaseController
|
public class SysLoginController : BaseController
|
||||||
{
|
{
|
||||||
//static readonly NLog.Logger logger = NLog.LogManager.GetLogger("LoginController");
|
|
||||||
private readonly IHttpContextAccessor httpContextAccessor;
|
|
||||||
private readonly ISysUserService sysUserService;
|
private readonly ISysUserService sysUserService;
|
||||||
private readonly ISysMenuService sysMenuService;
|
private readonly ISysMenuService sysMenuService;
|
||||||
private readonly ISysLoginService sysLoginService;
|
private readonly ISysLoginService sysLoginService;
|
||||||
@ -24,20 +21,16 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
private readonly ICaptcha SecurityCodeHelper;
|
private readonly ICaptcha SecurityCodeHelper;
|
||||||
private readonly ISysConfigService sysConfigService;
|
private readonly ISysConfigService sysConfigService;
|
||||||
private readonly ISysRoleService roleService;
|
private readonly ISysRoleService roleService;
|
||||||
private readonly OptionsSetting optionSettings;
|
|
||||||
|
|
||||||
public SysLoginController(
|
public SysLoginController(
|
||||||
IHttpContextAccessor contextAccessor,
|
|
||||||
ISysMenuService sysMenuService,
|
ISysMenuService sysMenuService,
|
||||||
ISysUserService sysUserService,
|
ISysUserService sysUserService,
|
||||||
ISysLoginService sysLoginService,
|
ISysLoginService sysLoginService,
|
||||||
ISysPermissionService permissionService,
|
ISysPermissionService permissionService,
|
||||||
ISysConfigService configService,
|
ISysConfigService configService,
|
||||||
ISysRoleService sysRoleService,
|
ISysRoleService sysRoleService,
|
||||||
ICaptcha captcha,
|
ICaptcha captcha)
|
||||||
IOptions<OptionsSetting> optionSettings)
|
|
||||||
{
|
{
|
||||||
httpContextAccessor = contextAccessor;
|
|
||||||
SecurityCodeHelper = captcha;
|
SecurityCodeHelper = captcha;
|
||||||
this.sysMenuService = sysMenuService;
|
this.sysMenuService = sysMenuService;
|
||||||
this.sysUserService = sysUserService;
|
this.sysUserService = sysUserService;
|
||||||
@ -45,7 +38,6 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
this.permissionService = permissionService;
|
this.permissionService = permissionService;
|
||||||
this.sysConfigService = configService;
|
this.sysConfigService = configService;
|
||||||
roleService = sysRoleService;
|
roleService = sysRoleService;
|
||||||
this.optionSettings = optionSettings.Value;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ namespace ZR.Admin.WebApi.Controllers.System
|
|||||||
public IActionResult QueryNotice([FromQuery] SysNoticeQueryDto parm)
|
public IActionResult QueryNotice([FromQuery] SysNoticeQueryDto parm)
|
||||||
{
|
{
|
||||||
var predicate = Expressionable.Create<SysNotice>();
|
var predicate = Expressionable.Create<SysNotice>();
|
||||||
|
|
||||||
predicate = predicate.And(m => m.Status == 0);
|
predicate = predicate.And(m => m.Status == 0);
|
||||||
var response = _SysNoticeService.GetPages(predicate.ToExpression(), parm);
|
var response = _SysNoticeService.GetPages(predicate.ToExpression(), parm);
|
||||||
return SUCCESS(response);
|
return SUCCESS(response);
|
||||||
|
|||||||
@ -37,7 +37,7 @@
|
|||||||
"ShowDbLog": true, //是否打印db日志
|
"ShowDbLog": true, //是否打印db日志
|
||||||
"InitDb": false, //是否初始化db
|
"InitDb": false, //是否初始化db
|
||||||
"DemoMode": false, //是否演示模式
|
"DemoMode": false, //是否演示模式
|
||||||
"SingleLogin": false,//是否单点登录
|
"SingleLogin": false,//是否允许多设备/浏览器登录
|
||||||
"Upload": {
|
"Upload": {
|
||||||
"uploadUrl": "http://localhost:8888", //本地存储资源访问路径
|
"uploadUrl": "http://localhost:8888", //本地存储资源访问路径
|
||||||
"localSavePath": "", //本地上传默认文件存储目录 wwwroot
|
"localSavePath": "", //本地上传默认文件存储目录 wwwroot
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
using Infrastructure;
|
using Infrastructure;
|
||||||
using SqlSugar.IOC;
|
using SqlSugar.IOC;
|
||||||
|
using ZR.Model.Business;
|
||||||
using ZR.Model.System;
|
using ZR.Model.System;
|
||||||
|
|
||||||
namespace ZR.ServiceCore.SqlSugar
|
namespace ZR.ServiceCore.SqlSugar
|
||||||
@ -85,35 +86,5 @@ namespace ZR.ServiceCore.SqlSugar
|
|||||||
db.QueryFilter.AddTableFilter(expRole.ToExpression());
|
db.QueryFilter.AddTableFilter(expRole.ToExpression());
|
||||||
db.QueryFilter.AddTableFilter(expLoginlog.ToExpression());
|
db.QueryFilter.AddTableFilter(expLoginlog.ToExpression());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void FilterData1(int configId)
|
|
||||||
{
|
|
||||||
//获取当前用户的信息
|
|
||||||
var user = JwtUtil.GetLoginUser(App.HttpContext);
|
|
||||||
if (user == null) return;
|
|
||||||
var db = DbScoped.SugarScope.GetConnectionScope(configId);
|
|
||||||
|
|
||||||
foreach (var role in user.Roles.OrderBy(f => f.DataScope))
|
|
||||||
{
|
|
||||||
var dataScope = (DataPermiEnum)role.DataScope;
|
|
||||||
if (DataPermiEnum.All.Equals(dataScope))//所有权限
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else if (DataPermiEnum.CUSTOM.Equals(dataScope))//自定数据权限
|
|
||||||
{
|
|
||||||
}
|
|
||||||
else if (DataPermiEnum.DEPT.Equals(dataScope))//本部门数据
|
|
||||||
{
|
|
||||||
}
|
|
||||||
else if (DataPermiEnum.DEPT_CHILD.Equals(dataScope))//本部门及以下数据
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
else if (DataPermiEnum.SELF.Equals(dataScope))//仅本人数据
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
43
ZR.ServiceCore/SqlSugar/DataPermiSevice.cs
Normal file
43
ZR.ServiceCore/SqlSugar/DataPermiSevice.cs
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
using Infrastructure;
|
||||||
|
using SqlSugar.IOC;
|
||||||
|
using ZR.ServiceCore.SqlSugar;
|
||||||
|
|
||||||
|
namespace ZR.ServiceCore
|
||||||
|
{
|
||||||
|
public class DataPermiSevice
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 你的业务库数据权限过滤方法
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="configId"></param>
|
||||||
|
public static void FilterData(int configId)
|
||||||
|
{
|
||||||
|
//获取当前用户的信息
|
||||||
|
var user = JwtUtil.GetLoginUser(App.HttpContext);
|
||||||
|
if (user == null) return;
|
||||||
|
var db = DbScoped.SugarScope.GetConnectionScope(configId);
|
||||||
|
|
||||||
|
foreach (var role in user.Roles.OrderBy(f => f.DataScope))
|
||||||
|
{
|
||||||
|
var dataScope = (DataPermiEnum)role.DataScope;
|
||||||
|
if (DataPermiEnum.All.Equals(dataScope))//所有权限
|
||||||
|
{
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (DataPermiEnum.CUSTOM.Equals(dataScope))//自定数据权限
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (DataPermiEnum.DEPT.Equals(dataScope))//本部门数据
|
||||||
|
{
|
||||||
|
}
|
||||||
|
else if (DataPermiEnum.DEPT_CHILD.Equals(dataScope))//本部门及以下数据
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else if (DataPermiEnum.SELF.Equals(dataScope))//仅本人数据
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -42,7 +42,7 @@ namespace ZR.ServiceCore.SqlSugar
|
|||||||
{
|
{
|
||||||
DataPermi.FilterData(0);
|
DataPermi.FilterData(0);
|
||||||
//ConfigId = 1的数据权限过滤
|
//ConfigId = 1的数据权限过滤
|
||||||
//DataPermi.FilterData1(1);
|
//DataPermiSevice.FilterData(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
iocList.ForEach(iocConfig =>
|
iocList.ForEach(iocConfig =>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user