-
Notifications
You must be signed in to change notification settings - Fork 767
Closed
Labels
Milestone
Description
您的功能请求与现有问题有关吗?请描述
现在的数据权限在杂合在Repository
中,需要将数据权限提为独立服务,这样,对于不想使用现有权限逻辑的场景,提供了进行自定义的可能。
描述您想要的需求方案
数据权限的操作主要为:
- 获取指定实体的数据权限过滤表达式
- 检查指定操作的数据权限,验证要操作的数据是否符合特定的验证委托
/// <summary>
/// 定义数据权限服务
/// </summary>
public interface IDataAuthService
{
/// <summary>
/// 获取指定实体的数据权限过滤表达式
/// </summary>
/// <typeparam name="TEntity">实体类型</typeparam>
/// <param name="operation">数据权限操作</param>
/// <param name="group">传入的查询条件组,为空时则只返回数据权限过滤器</param>
/// <returns>实体的数据权限过滤表达式</returns>
Expression<Func<TEntity, bool>> GetDataFilter<TEntity>(DataAuthOperation operation, FilterGroup group = null);
/// <summary>
/// 检查指定操作的数据权限,验证要操作的数据是否符合特定的验证委托
/// </summary>
/// <typeparam name="TEntity">实体类型</typeparam>
/// <param name="operation">数据权限操作</param>
/// <param name="entities">待检测的实体数据</param>
/// <returns>是否有权限</returns>
bool CheckDataAuth<TEntity>(DataAuthOperation operation, params TEntity[] entities);
}