业务系统用户权限设计踩过的坑!
做后台系统,难免会遇到用户权限设计,而此处每个公司会根据自己的实际业务情况来划分设计权限,尤其是成熟的电商公司,恰好前段时间做过用户权限这的设计,今天就做一次复盘总结!!!
后台产品经理,做后台业务系统的权限设计,一般会从两个方面来考虑权限问题:一个是数据权限,还有一个是功能权限。
- 对于功能权限,会根据业务颗粒度来调整,可以细化到菜单项,也可以细化到具体的功能点。
- 而至于数据权限,每个公司会根据自己的实际业务需要来进行考虑。一般像运营、客服系统、采购、O2O系统会使用的多些;当然公司也可以做一套共用的用户权限,方便于管理。
一、权限设计模块划分
用户权限模块一般分为:用户管理、模块管理、角色管理、机构管理、部门管理等。具体如图:
- 用户管理包括了新增、删除、编辑、角色授权、禁用、启用等;
- 模块管理可以根据实际业务场景需要,可以管理到功能点,也可以只管理到页面;功能点包括新增,编辑,删除等;
- 角色管理可以分为数据角色和功能角色类型,功能点包括新增、编辑、删除、授权权限等;
- 机构管理对于只有一个总公司的不牵涉,可以无该模块;但是如果有分公司、区域公司等,需要考虑该模块,一般这块和用户关联,也有可能根据业务需要和数据角色有所关联;
- 部门管理某个机构下的部门,和机构是有所关联;但是如果是针对某一业务部门使用的系统,可以考虑无该部门管理模块。
二、权限设计功能点设计的注意点
1. 新增用户时,角色授权需要授权功能权限和数据权限
- 一个用户账号可以关联多个功能角色。如果所授权的功能角色有冲突,取并集。如:角色1有A模块的新增、编辑权限;角色2有A模块的删除权限;那么这个用户账号有的权限包括了新增、编辑和删除;因此数据权限同理。
- 数据权限授权可根据机构、部门、不同的业务、区域等来授权数据权限;根据公司的实际业务需要来设计即可。
2. 机构管理
- 对于机构类型,是否要有归属关系等都需要根据公司的实际组织结构和系统使用角色来确定;
- 该模块的管理,是为了后期每个组织机构账号的方便管理来设计使用,最终还是以公司的实际业务场景来取舍;当然上述提到的部门管理模块也是同理。
3. 角色管理
角色类型一般会分为功能角色和数据角色:
- 功能角色顾名思义,是用户可以操作系统中的哪些具体的功能点或者是页面中所有的功能点;
- 而数据角色指的是可以看到该系统哪部分的数据,设置是字段的限制等等;数据角色的权限划分一般会从地区、公司机构、部门等维度来限制。
4. 模块管理
模块管理新增权限时颗粒度是限制到页面上还是是具体的功能点上,根据实际需要来决定:
- 一般对于成熟型的公司,因为业务已经规范化,就需要具体的某一功能点;
- 而对于初创型公司,人员配比,业务规范性考虑,前期权限可只限制到具体的页面上;不过考虑到后期的系统的扩展性问题,可以在前期的评审过程中告知研发同事,将可扩展的口先预留,防止釜底抽薪的改动发生。
总结
用户权限看着简单,但是牵涉到底层权限的设计,一定要调研充分。
功能权限的颗粒度确定和是否要有数据权限,以及数据权限应该从哪一维度设计,都需要和业务沟通,充分了解各个业务部门的日常工作职责和管理。否则后期上线后不满足业务需要再做改动是很麻烦的一件事,一旦有考虑不到的地方,就会踩坑。
因此在产品设计初期,就要调研尽量充分。
#专栏作家#
简之箐(微信公众号:简之箐),人人都是产品经理专栏作家,5年互联网产品经理,曾担任医药产品经理和电商产品经理,经历主导过电商平台的系统整合规划。
本文原创发布于人人都是产品经理。未经许可,禁止转载。
题图来自 Pexels,基于 CC0 协议
功能授权采用下拉树的方式展现用户体验不太好吧,建议角色授权最好以单独页面的形式展示吧
关于数据权限有些问题想问下:我们公司存在2个平级部门:销售部、风控部,销售部下有多个小组。现在期望的是:销售部经理能查看所有销售人员的数据、销售组长能查看自己组内人员的数据;但风控部的所有人均能查看销售部所有人员的数据。
也就是说,某个用户能查看的数据不一定是自己和下级的数据,而是平级部门内所有人的数据。目前我们是这样配置的:给某个用户配置数据权限时,可以勾选多个组织,只要勾选,就能查看该组织成员的数据。
请问这种设计方式是否合理?是否有其他解决办法?
具体要以公司的实际情况来设计。你描述的是属于查看数据权限这块,有些公司可能会按部门区分,但灵活性有限。也可以将数据分组,授权查看权限。
数据权限设计是否可以举个例子呢?
请教下~页面与接口的关联关系,需要建立么?
有几个问题:
1、数据角色是否可以理解为,如果我是一个集团公司,四川分公司的账号关联的数据角色,在具体用户省市就只能看到四川的?
2、关于某一账号有账号列表的增删改查的权限,那这个账号是否可以对创建他的账号进行删除操作等?
3、模块管理,用列表单独列出的好处是什么?
如果给用户配置角色后可在角色拥有的权限上再做一些权限个性化配置会不会更好?
感觉作者写得比较笼统,我们刚刚入的一个坑,数据权限非常的复杂,而且配置起来非常繁琐,根本不适合客户的使用,只能是我们配置好再交给客户,不知道作者是否有遇到这样的问题?
暂时没有。数据权限配置繁琐不太清楚你指得是??我们做得配置得时候还好,有问题可以微信沟通!
每一个大的模块,细分到最小的功能就是增删改查对吧?增要设置能增加什么数据,不能增加什么数据,平台上有很多的数据范围,然后删改查也一样,是这样吗?
平台端预设一些角色给用户使用,and 客户端也支持自定义授权,and 权限只见要有并集也有差集~