GoodERP中的权限设计
-
公司内部对职责(或者说权力)的管理是针对岗位的。
-
授权,保证岗位人员正常工作 (战略,做什么)
-
分权,保证相同岗位的人各自承担一块(组织,谁来做)
-
掌权,保证内控别走偏(执行,怎么做)
落实到ERP软件上,就有三个对应的机制
-
GoodERP中为每个岗位设置一个用户组(res.groups一般使用xml导入)
-
可以为每一个用户分配多个用户组
-
授权(ir.model.access一般使用csv导入),控制哪些岗位可以针对哪些数据表进行插删改查操作
-
分权(ir.rule 一般使用xml导入),控制相同岗位的用户,根据数据表上的某个字段值作为条件,拥有这一块数据的插删改查权限
-
掌权(xml标签里的groups属性),控制哪些岗位的用户可以看到指定的界面元素(不在此岗位的人看不到)
举个栗子:
公司新来了一个员工Tim,我们要:
- 给他新建一个用户
- 分配 人事-员工 用户组给他
这样,针对请假这个工作:
- 此用户组包含请假记录(staff.leave)的查看、创建、修改、删除权限
- Tim可以查看所有人的请假记录,但不能创建、修改或删除其他人的请假记录
- 请假记录有个状态,已审核的请假记录是不允许修改的。而此状态的修改是由【审核】按钮控制的。那么我们在xml里指定了这个按钮的groups是人事经理,那么普通员工是看不到这个按钮的。这也就保证了只有人事经理岗位的人才能审批休假申请
注意
- 授权会随着向相同用户增加岗位而扩大,这也是小微企业常见的一人多岗
- 分权要注意适用的岗位范围,一般部门经理需要查看所有部门人员分担的信息
- 在GoodERP中,岗位权限的定义是在代码中实现的,那么个性化定制建议也采用模块内写代码的方式,这样更直观可控
-