新手问题 关于数据权限控制

kxu1988 · 2019年03月07日 · 最后由 jasl 回复于 2019年03月07日 · 1920 次阅读

需求: 系统有多个组织机构,每个机构只能看到当前机构的数据

问题: 1.数据权限控制有类似 cancan 的 gem 可以参考吗? 2.数据权限控制一般有哪些处理的方法?

我的想法: 业务数据存储相关的表都有 organization_id 字段; 在执行所有 sql 查询操作的时候检查该表是否存在 organization_id 字段,如果存在,给该 sql 增加一个查询条件

组织机构有层级吗?包含层级权限吗?

pundit cancan 是 Gem,这种业务系统的权限模型一般是 RBAC,具体可以搜一下相关资料

具体实现可以参考 Redmine 的设计,一套支持继承的 RBAC,不过这种通常都比较复杂,要完全消化需要时间

但初衷就是限定数据访问的范围,那无非就是在数据库层面加一些用于划分数据所有权的字段,然后计算用户的所有权范围,限定只能查询到所在范围内的数据,你说的想法大体上没问题的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号