现在做的一个企业应用HRMS,权限管理方面有些问题想不透彻:
1、多种粒度的权限判定:
基于部门的权限
基础模块权限
人事模块权限
行政模块权限
招聘模块权限
培训模块权限
以上5种模块中,后四种依赖于第一种模块,所以会将一些私人数据如考勤数据查看放在基础模块权限里。
基于岗位的权限
部门总监
高级经理
经理
普通职员
基础模块里还会含有发起流程,但是普通员工无法审批流程,经理级别以上才能开到下属员工发起的流程。
用户跟权限直接挂钩
因为实际生产环境中会有一些人是总监助理,或身兼多职。对于这种情况我打让用户直接用user_permisson表管理。
问题1:数据模型设计
这种设计后期验证方面是否会比较麻烦?
问题2:不同部门、岗位所显示的界面稍有不同,如何实现?(最好是ajax方式加载)
比如人事部门在基础模块的基础上能够看到简历库,以及人员信息。经理级别可以审批下属员工,以及团队业绩等数据。
在线等有检验的高手解答,万分感谢!
该项目基于Laravel 5.2.29,目前是一个人在做,打算开源。
如果有兴趣的朋友可以一起开发。
有考虑过
RBAC
吗,部门可以是个角色,岗位可以是个角色,用户的特殊权限也可以划分一个独立角色,你的思路也没错,你所担心的后期验证方面是否麻烦应该是指权限关联表太多会造成查询超时这种情况吧,那就将权限存NoSQL上。关于第二个问题,显示不同的话最好是把菜单的显示也结合到权限里面去,权限表里面有单纯的权限项+菜单项