Skip to content

将数据权限重构为独立服务IDataAuthService #233

@gmf520

Description

@gmf520

您的功能请求与现有问题有关吗?请描述

现在的数据权限在杂合在Repository中,需要将数据权限提为独立服务,这样,对于不想使用现有权限逻辑的场景,提供了进行自定义的可能。

描述您想要的需求方案

数据权限的操作主要为:

  1. 获取指定实体的数据权限过滤表达式
  2. 检查指定操作的数据权限,验证要操作的数据是否符合特定的验证委托
    /// <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);
    }

Metadata

Metadata

Assignees

No one assigned

    Labels

    Breaked Changes ⚡更新有破坏性,对现有业务实现有较大影响Feature 🔨新功能,新特性Finished ✔️实现并完工

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions