feat:添加数据权限搭建,准备完成数据权限过滤

This commit is contained in:
橙子
2023-05-21 21:43:11 +08:00
parent 95a91a10b3
commit ad6bd8f39b
15 changed files with 206 additions and 83 deletions

View File

@@ -1,5 +1,6 @@
using Furion;
using Microsoft.Extensions.DependencyInjection;
using Yi.Framework.Infrastructure.Sqlsugar;
namespace Yi.Furion.Sqlsugar.Core;
@@ -7,10 +8,6 @@ public class Startup : AppStartup
{
public void ConfigureServices(IServiceCollection services)
{
//services.AddDatabaseAccessor(options =>
//{
// options.AddDbPool<DefaultDbContext>();
//}, "Yi.Furion.Rbac.Database.Migrations");
System.Console.WriteLine();
services.AddDbSqlsugarContextServer<YiDbContext>();
}
}

View File

@@ -0,0 +1,42 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using SqlSugar;
using Yi.Framework.Infrastructure.CurrentUsers;
using Yi.Framework.Infrastructure.Sqlsugar;
namespace Yi.Furion.Sqlsugar.Core
{
/// <summary>
/// 使用自定义上下文
/// </summary>
public class YiDbContext : SqlSugarDbContext
{
public YiDbContext(IOptions<DbConnOptions> options, ICurrentUser currentUser, ILogger<SqlSugarDbContext> logger) : base(options, currentUser, logger)
{
}
//进行Aop数据权限过滤
protected override void OnSqlSugarClientConfig(ISqlSugarClient sqlSugarClient)
{
//这里Aop进行数据权限过滤
var userId = _currentUser.Id;
if (userId == 0) return;
_logger.LogInformation($"用户【{userId}】访问Aop");
/*
* 这里数据权限,步骤:
* 1获取用户id
* 2通过用户id获取该用户的全部角色
* 3便利每一个角色获取全部的数据权限
* 4会涉及部门表的筛选所以还需要获取用户的所在部门如果没有部门那就是过滤到只看自己
* 5可直接使用DB进行查询部门即可
*/
}
}
}