手把手教你做ERP(一):权限系统

Ron
28 评论 43626 浏览 317 收藏 10 分钟

没有权限系统的ERP,是没有灵魂没有大脑的躯壳,一个权限混乱的ERP,是一个四肢不协调的机器人,哪怕指令再明确,行为也达不到期望要求。本文主要分为五个步骤来教你如何去设计权限系统,一起来看看~

引用自百度百科:

权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,不多不少。权限管理几乎出现在任何系统里面,只要有用户和密码的系统。 很多人常将“用户身份认证”、“密码加密”、“系统管理”等概念与权限管理概念混淆。

其他的内容就不多复制了,大家自己去看。

在我看来,权限系统用一个成语来概括就是:各司其职。用一个词来形容地位就是:万物之源。用一句话来说明就是:没有权限系统的ERP,是没有灵魂没有大脑的躯壳,一个权限混乱的ERP,是一个四肢不协调的机器人,哪怕指令再明确,行为也达不到期望要求。

扯了些虚的,现在来说点实的。

在搭建一个系统之前,不要急着去把自己脑海中的想法画出来,因为你会发现你根本画不到第三步以后的东西。我们要做的是去弄清楚根源,权限系统是什么?

我用一张图来给大家梳理一下:

这里出现了4个名词,分别是岗位、系统、角色、角色组

下面我解释一下四个词的定义。

  1. 岗位:顾名思义,就是你所在的职位Title,即产品助理、产品经理、产品总监。
  2. 系统:ERP系统内的系统,比如:人事系统、财务系统、固定资产管理系统等等。
  3. 角色:你的岗位,在这个系统中所对应的身份,即全局管理员、局部管理员、全局仅查询、部分仅查询或者无权限。
  4. 角色组:就是你所有的角色合并的一个组,称为角色组。

经过上面以上图介绍,各位心里应该也清楚了,所谓的权限管理,其实就是一个:所有岗位对应所有系统权限的管理系统——也就是各司其职

进入正题:

一、权限系统原理是什么?

在这里我也不和大家扯一些权限系统的概念混字数,下面我直接开始给大家举栗子,并根据栗子给大家做出分析。

场景一

  • 给张三赋予“人力资源经理”角色,“人力资源经理”具有“查询员工”、“添加员工”、“修改员工”和“删除员工”权限。此时张三能够进入系统,则可以进行这些操作;
  • 去掉李四的“人力资源经理”角色,此时李四就不能够进入系统进行这些操作了。

分析:

从这个场景中,我们得出几个有效信息(其实就是需求分析):

  • 赋予张三岗位,撤除李四岗位;
  • 岗位所含有的权限操作,即人力资源经理(岗位)所包含的权限有:进入系统,员工管理(增删改查);
  • 岗位拥有权限范围,有无岗位决定有无权限。

场景二

  • 因为张三是北京分公司的“人力资源经理”,所以他能够也只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司、西城子公司、东城子公司等)的员工;
  • 因为王五是海淀子公司的“人力资源经理”,所以他能够也只能够管理海淀子公司的员工;
  • 普通审查员审查财务数据的权限是:在零售行业审核最高限额是¥50万,在钢铁行业最高限额是¥1000万,高级审查员不受该限额限制;
  • ATM取款每次取款额不能超过¥5000元,每天取款总额不能超过¥20000元。

分析:

其实很明显,这个场景只说明一件事情——权限不同,即使在系统的同一操作页面下,能看到的东西也不一样

上面两个场景,想必大家即便是没做过权限管理系统,也都能看出来。那接下来深入一点聊。

控制力度来看,可以将权限管理分为两大类:

  1. 功能级权限管理(场景一);
  2. 数据级权限管理(场景二)。

控制方向来看,也可以将权限管理分为两大类:

  1. 从系统获取数据,比如查询订单、查询客户资料(场景一);
  2. 向系统提交数据,比如删除订单、修改客户资料(场景一)。

再回到之前的问题,权限系统原理到底是什么?用两张图来代替设计原理。

给角色设置不同的系统功能 or 可操作数据——角色管理

例如:产品经理在人事管理系统中,具有局部观察员角色,能够拥有查询除工资外所有数据的权限;在财务管理系统中,没有角色,所以没有任何权限;在固定资产管理中,是局部管理员角色,即针对产品部&开发部的增删改查功能等等。

将同一岗位,不同系统角色组合在一起——角色组管理

例如:产品经理拥有人事管理的观察员角色,同时又扮演固定资产管理的局部管理员,但没有财务管理的任何角色。

举个生活中的实际例子,如果你是一名应届生,我列举几个场景、角色、权限。

  1. 在学校:学生,只能查询自己的成绩&表现;(普通角色,可以理解为无权限
  2. 在学生会:干部,可以且只能获取自己学院部分信息,所有人成绩、获奖等;(局部观察员
  3. 在家:子女,权限由父母提供,大多数事情需要父母审批,但也可以自己做出一些决定。(局部管理员

二、如何去设计权限系统?

Step1:先去设计系统管理页面,里面包含所有ERP系统

Step2:在每个系统列表中,可以对角色进行管理

即增删改查,甚至可以加上启用/停用功能。

Step3:对启用状态下的角色进行权限配置,即对不同菜单的查询权限

Step4:设计角色组管理菜单,可以对角色组进行管理

即增删改查,甚至可以加上启用/停用功能。

Step5:给每个角色组添加角色管理功能

这几个做完以后,一个简易的权限管理系统也就做完了。

这时可能会有细心的朋友问了,数据呢?数据的权限怎么分?同一系统同一菜单下,不同角色可查数据不同,该怎么分?

告诉你一个很简单的处理方法,给数据贴标签,没有标签的人看不到就行了。具体也不多详述了,开发都懂。(偷个懒)

至于如何给不同岗位的人设置角色组,在我的规划下,是安排在人事管理系统中,由人事专员负责设置及安排。我会在下一篇系列文中给大家描述的。

相关阅读

手把手教你做ERP(二):人事系统

手把手教你做ERP(三):财务系统

 

 

本文由 @ RonT 原创发布于人人都是产品经理。未经许可,禁止转载

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 1

    回复
  2. 楼主的步骤5我理解是“角色组管理”,即为该角色组选择哪些系统下的哪些角色,例如:角色组为产品经理,拥有人事管理系统的局部观察员角色?原型图给的有些歧义。

    来自内蒙古 回复
  3. 个人觉得角色组这个东西很鸡肋,大多数情况下,人员、部门组织、角色(数据+功能)、权限这套体系就玩的转,再加入其他的只会徒增用户操作难度!

    来自浙江 回复
  4. 请问一下权限管理系统要体现账号吗

    来自广东 回复
  5. 可以直接把某个权限挂在人身上么

    回复
    1. 可以

      回复
  6. 请教下 角色组是指将几个角色组成。然后将角色组授权给用户吗?没太看明白。不同的人同一个角色组但是无论视图权限或者数据权限可能都不一样,为什么不到最小级角色呢。

    来自北京 回复
    1. 可以的,一个角色组里面只有一个角色也不是不行,或者说,直接给一个用户赋予一个单一角色权限就可以了。
      比如游客模式,可以理解为只有部分页面的浏览权限,就可以理解为单一角色而不是一个角色组。
      只不过这种情况很少见,忽略不计了哈哈哈哈。
      当然行业更复杂的情况,那具体情况具体分析,我这边提供了一个大致的简易方案,适合为刚刚接触的萌新产品提供一些参考思路。

      来自上海 回复
  7. 🙂 受教了~

    来自江苏 回复
  8. 可以发一个完整的关于权限设计的原型页面吗?谢谢,对于角色互斥的情况要怎么处理更好一点呢?

    来自重庆 回复
    1. 恐怕不行,不同公司情况不同,没法一张图解决所有问题

      来自上海 回复
    2. 好吧!谢谢,会持续关注的

      来自重庆 回复
  9. 1、HR产品的产品使用权限比较窄的,涵盖不到ERP系统,ERP管理软件权限体系维度的设置极其复杂,权限贯穿和弥漫在ERP软件体系里,无处不在,无时不用。许多软件就是权限没法细化,使很多功能没法体现,客户体验很不爽。国外某软公司的ERP权限比较简单,粗糙,被客户各角色一直诟病和替换重大理由。
    2、题主单一阐述了,产品功能权限,涉及一些数据权限,字段权限,数据库,远程登录,二次开发权限等没有涉及,题主一窥全豹权限体系描素,局限于所处产品和阶段,对于TOB不错了。

    来自四川 回复
    1. 你说的没错,这些都是表面的东西。不过也许你不太清楚文章定位,针对新手产品。不需要和他们说的太多,多了反而容易误导。

      回复
  10. 场景一中的分析,是赋予岗位权限范围还是赋予角色权限范围合适?

    来自北京 回复
    1. 角色。为第一张图其实隐含一个信息,岗位=角色组。两者是一个东西,只不过岗位是我们的工作Title,角色组是权限中的角色集合

      来自上海 回复
    2. 岗位和角色组不是一个概念,实际工作中一个岗位可能身兼数职,那么他就有很多角色和权限,才可以展开工作

      来自四川 回复
    3. 对,这个时候就涉及到特殊角色组了,毕竟不是每个人都身兼数职的。特殊情况特殊操作

      回复
  11. 刚好在琢磨这块的东西,受用不少,希望以后能多出点ERP相关的知识模块

    来自四川 回复
    1. 正有这个打算

      来自上海 回复
  12. 其实最想看的就是数据权限那一块,竟然偷懒被省掉了….

    来自北京 回复
    1. 对于公司内部系统(例OA),可以考虑采用部门来划分。当然不同的系统划分的依据可能不一样。

      来自广东 回复
    2. 可以那么处理,而且比较简单,逻辑上页走得通

      来自上海 回复
    3. 教新人的不需要那么多东西,时候到了都会明白的。

      来自上海 回复
    4. 哈哈

      来自北京 回复
    5. 我也是,最想看看数据权限怎么规划,然后就被一句话概括了。。。

      来自广东 回复
    6. 举个例子,
      数据权限为A,角色权限为B。
      小明和小红为同一岗位,所以给他们分配B。
      但由于小明和小红分管不同模块,所以,小明是A1,小红是A2。
      完成。

      来自上海 回复
    7. 这是最简易的模型,如果要深入讨论,在这就太麻烦了,加vx : xrt249700298

      来自上海 回复