⚡ 优化功能

This commit is contained in:
不做码农
2023-11-12 10:08:42 +08:00
parent 2bc2911718
commit f78ccc2b4c
9 changed files with 61 additions and 42 deletions
+1
View File
@@ -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);
+1 -1
View File
@@ -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 -30
View File
@@ -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))//仅本人数据
{
}
}
}
} }
} }
@@ -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))//仅本人数据
{
}
}
}
}
}
+1 -1
View File
@@ -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 =>