数据权限
功能概述
数据权限说白了就是"管好自己的一亩三分地"。它基于组织架构做数据隔离——只要实体实现了 IDataPermission 接口,系统查询的时候就会自动加上当前用户所在部门的过滤条件,让你只能看到本部门及子部门的数据。管理员角色不受限制,啥都能看。
实现原理
接口定义
实体实现 IDataPermission 接口:
public interface IDataPermission
{
long OrgId { get; set; }
}
自动过滤
在 AdminTable 上把 UseDataPermission 设为 true,查数据的时候就会自动带上 OrgId 条件:
<AdminTable TItem="SysOrder" UseDataPermission="true" ... />
自动赋值
新增记录时不用手动填 OrgId,系统通过 RepositoryOptions.AuditValue 会自动把当前用户的 OrgId 写进去。
权限范围
- 普通用户:只能看自己所在部门以及所有子部门的数据
- 管理员(
IsAdministrator = true):想看啥看啥,不限制
使用方法
为实体启用数据权限
- 让实体类实现
IDataPermission接口,加上OrgId属性。 - 在
AdminTable组件上设UseDataPermission="true"。
验证数据权限
- 拿非管理员账号登录试试,应该只能看到本部门及子部门的数据。
- 切个部门,数据范围会自动跟着变。
相关接口/服务
IDataPermission— 数据权限接口RepositoryOptions.AuditValue— 自动赋值机制AdminTable.UseDataPermission— 表格启用开关