快速向导
低代码平台需定义一套可灵活配置权限规则,以满足企业软件各种类型的权限控制需求,同时需要兼顾系统性能。
通过记录过滤的相关规则,控制用户可以查询的记录范围。再叠加字段权限,控制用户对具体字段的操作权限。当用户同时属于多个权限集时,最终权限为叠加之后的结果。
权限不直接绑定到用户,而是绑定到简档/权限集。
每个用户必须属于一个简档,且只能属于一个简档。每个用户可以属于多个权限集。
用户的最终权限 = 简档权限 + 所有权限集权限。因此,通常简档上赋予用户的是最小权限,并通过叠加相应的权限集扩展用户的权限。
当内置简档不够用时,可以在软件包中自定义简档/权限集。并设定好对应的权限。项目实施时,只需要为简档/权限集设置具体的人员就可以。
记录查看权限用于控制用户授权查看的记录清单。最终会转换成一组过滤条件,在 记录服务 中自动叠加成为数据库的查询条件。
对象中的每一条记录都默认有一个 owner 字段,代表记录所有者。当用户拥有指定对象 允许查看
权限时,表示用户可以访问指定对象中,所有 owner = ${currentUserId}
的记录。
对象中的每一条记录都默认有一个 company_id、company_ids 字段,代表记录所属分部(记录属于多个分部时,company_id 记录 owner 所属的主分部)。
当用户拥有指定对象 查看所属分部
或 查看指定分部
权限时,表示用户可以访问指定对象中,所有 company_id、company_ids = ${authorizedCompanyIds}
的记录。
当用户拥有指定对象 查看所有记录
权限时,表示用户可以访问指定对象中的所有记录。
共享规则是一个过滤条件,满足此过滤条件的记录,用户始终可以查看。
限制规则是一个过滤条件,满足此过滤条件的记录,用户始终禁止查看。
可以为对象启用基于角色树的权限继承功能。启用后,角色树上级节点自动获得所有下级节点的记录查看权限。
如果以上规则不能满足需求,可以通过定义 beforeFind 触发器,叠加规则来处理。
记录修改权限用于控制用户对于具体记录的修改权限。用户首先必须拥有相应记录的查看权限,才能进一步进行修改。
当用户拥有指定对象 修改所有记录
权限时,表示用户所有可查看的记录都能修改。
当用户拥有指定对象 修改所属分部
或 修改指定分部
权限时,表示用户可以修改相应分部中,所有可查看记录。
当用户只拥有对象上的修改
,删除
权限时,表示用户只能修改自己的记录,也就是owner = ${currentUserId}
的记录。
记录新增权限用于控制用户是否可以为对象新增记录,以及如何设定记录的 所有者(owner)字段。
当用户只拥有对象上的新增
权限时,表示用户可以新增记录,并且设置owner = ${currentUserId}
。
新增
权限,且拥有 修改所属分部
或 修改指定分部
权限时,表示用户可以新增记录,并且设置 owner
= 指定分部中的某个用户。新增
权限,且拥有 修改所有记录
权限时,表示用户可以新增记录,并且设置 owner
= 任何用户。可以更精确的指定,用户对具体字段的操作权限。包括是否可见,是否可修改。