数据权限

功能概述

数据权限说白了就是"管好自己的一亩三分地"。它基于组织架构做数据隔离——只要实体实现了 IDataPermission 接口,系统查询的时候就会自动加上当前用户所在部门的过滤条件,让你只能看到本部门及子部门的数据。管理员角色不受限制,啥都能看。

实现原理

接口定义

实体实现 IDataPermission 接口:

public interface IDataPermission
{
    long OrgId { get; set; }
}

自动过滤

AdminTable 上把 UseDataPermission 设为 true,查数据的时候就会自动带上 OrgId 条件:

<AdminTable TItem="SysOrder" UseDataPermission="true" ... />

自动赋值

新增记录时不用手动填 OrgId,系统通过 RepositoryOptions.AuditValue 会自动把当前用户的 OrgId 写进去。

权限范围

  • 普通用户:只能看自己所在部门以及所有子部门的数据
  • 管理员(IsAdministrator = true):想看啥看啥,不限制

使用方法

为实体启用数据权限

  1. 让实体类实现 IDataPermission 接口,加上 OrgId 属性。
  2. AdminTable 组件上设 UseDataPermission="true"

验证数据权限

  • 拿非管理员账号登录试试,应该只能看到本部门及子部门的数据。
  • 切个部门,数据范围会自动跟着变。

相关接口/服务

  • IDataPermission — 数据权限接口
  • RepositoryOptions.AuditValue — 自动赋值机制
  • AdminTable.UseDataPermission — 表格启用开关