没有权限系统的ERP,是没有灵魂没有大脑的躯壳,一个权限混乱的ERP,是一个四肢不协调的机器人,哪怕指令再明确,行为也达不到期望要求。本文主要分为五个步骤来教你如何去设计权限系统,一起来看看~
引用自百度百科:
权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。很多人常将“用户身份认证”、“密码加密”、“系统管理”等概念与权限管理概念混淆。
其他的内容就不多复制了,大家自己去看。
在我看来,权限系统用一个成语来概括就是:各司其职。用一个词来形容地位就是:万物之源。用一句话来说明就是:没有权限系统的ERP,是没有灵魂没有大脑的躯壳,一个权限混乱的ERP,是一个四肢不协调的机器人,哪怕指令再明确,行为也达不到期望要求。
扯了些虚的,现在来说点实的。
在搭建一个系统之前,不要急着去把自己脑海中的想法画出来,因为你会发现你根本画不到第三步以后的东西。我们要做的是去弄清楚根源,权限系统是什么?
我用一张图来给大家梳理一下:
这里出现了4个名词,分别是岗位、系统、角色、角色组。
下面我解释一下四个词的定义。
- 岗位:顾名思义,就是你所在的职位Title,即产品助理、产品经理、产品总监。
- 系统:ERP系统内的系统,比如:人事系统、财务系统、固定资产管理系统等等。
- 角色:你的岗位,在这个系统中所对应的身份,即全局管理员、局部管理员、全局仅查询、部分仅查询或者无权限。
- 角色组:就是你所有的角色合并的一个组,称为角色组。
经过上面以上图介绍,各位心里应该也清楚了,所谓的权限管理,其实就是一个:所有岗位对应所有系统权限的管理系统——也就是各司其职。
回到之前的问题
一、权限系统原理是什么?
在这里我也不和大家扯一些权限系统的概念混字数,我就默认大家都了解权限的原理,下面我直接开始给大家举栗子,并根据栗子给大家做出分析。
场景一
- 给张三赋予“人力资源经理”角色,“人力资源经理”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作;
- 去掉李四的“人力资源经理”角色,此时李四就不能够进入系统进行这些操作了。
分析:
从这个场景中,我们得出几个有效信息(其实就是需求分析):
- 赋予张三岗位,撤除李四岗位;
- 岗位所含有的权限操作,即人力资源经理(岗位)所包含的权限有:进入系统,员工管理(增删改查);
- 岗位拥有权限范围,有无岗位决定有无权限。
场景二
- 因为张三是北京分公司的“人力资源经理”,所以他能够也只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司、西城子公司、东城子公司等)的员工;
- 因为王五是海淀子公司的“人力资源经理”,所以他能够也只能够管理海淀子公司的员工;
- 普通审查员审查财务数据的权限是:在零售行业审核最高限额是¥50万,在钢铁行业最高限额是¥1000万,高级审查员不受该限额限制;
- ATM取款每次取款额不能超过¥5000元,每天取款总额不能超过¥20000元。
分析:
其实很明显,这个场景只说明一件事情——权限不同,即使在系统的同一操作页面下,能看到的东西也不一样。
上面两个场景,想必大家即便是没做过权限管理系统,也都能看出来。那接下来深入一点聊。
从控制力度来看,可以将权限管理分为两大类:
- 功能级权限管理(场景一);
- 数据级权限管理(场景二)。
从控制方向来看,也可以将权限管理分为两大类:
- 从系统获取数据,比如查询订单、查询客户资料(场景一);
- 向系统提交数据,比如删除订单、修改客户资料(场景一)。
回到之前的问题,如何去设计一个系统呢?用两张图来代替设计原理。
角色管理:给角色设置不同的系统功能or可操作数据
例如:产品经理在人事管理系统中,具有局部观察员角色,能够拥有查询除工资外所有数据的权限;在财务管理系统中,没有角色,所以没有任何权限;在固定资产管理中,是局部管理员角色,即针对产品部&开发部的增删改查功能等等。
角色组管理:将同一岗位,不同系统角色组合在一起
例如:产品经理拥有人事管理的观察员角色,同时又扮演固定资产管理的局部管理员,但没有财务管理的管理员角色。
举个生活中的实际例子,如果你是一名应届生,我列举几个场景、角色、权限。
- 学校:学生,只能查询自己的成绩&表现;(普通角色,可以理解为无权限)
- 学生会:干部,可以获取自己学院部分信息,所有人成绩、获奖等;(局部观察员)
- 在家:子女,权限由父母提供,大多数事情需要父母审批,但也可以自己做出一些决定。(局部管理员)
二、如何去设计权限系统?
Step1:先去设计系统管理页面,里面包含所有ERP系统
Step2:在每个系统列表中,可以对角色进行管理
即增删改查,甚至可以加上启用/停用功能。
Step3:对启用状态下的角色进行权限配置,即对不同菜单的查询权限
Step4:设计角色组管理菜单,可以对角色组进行管理
即增删改查,甚至可以加上启用/停用功能。
Step5:给每个角色组添加角色管理功能
这几个做完以后,一个简易的权限管理系统也就做完了。
这时可能会有细心的朋友问了,数据呢?数据的权限怎么分?同一系统同一菜单下,不同角色可查数据不同,该怎么分?
告诉你一个很简单的处理方法,给数据贴标签,没有标签的人看不到就行了。具体也不多详述了,开发都懂。(偷个懒)
至于如何给不同岗位的人设置角色组,在我的规划下,是安排在人事管理系统中,由人事专员负责设置及安排。我会在下一篇系列文中给大家描述的。