2

权限管理的“前世今生”

 1 year ago
source link: http://www.androidchina.net/12981.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

权限管理的“前世今生” – Android开发中文站

最新消息:欢迎访问Android开发中文站!商务联系微信:loading_in
你的位置:Android开发中文站 > 热点资讯 > 权限管理的“前世今生”

编辑导语:“权限管理”在日常生活中十分常见,它规定了用户各自的角色和可使用的职能。那么,在B端产品中,“权限管理”应该如何设计?本篇文章里,作者针对权限管理系统的发展和设计策略做了解读,一起来看一下吧。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F8eb0a85cj00r2nqm1002zc000p000bog.jpg&thumbnail=690x10000&quality=75&type=jpg

什么是权限管理?百度百科解释道:权限管理,一般指根据系统设置的安全规则或者安全策略 ,用户可以访问而且只能访问自己被授权的资源,不多不少。

何为“不多不少”?简单来讲,就是“用户”可以“做什么”,以及可以“做到什么程度”,都是通过权限管理来控制。

一、“前世”的权限缩影

在我们的生活当中,大到国家、政府,小到企业、家庭,到处都透露着“权限”的缩影。

以企业为例,不同的员工,所对应的岗位职责(也就是权限)也不同:

  1. 人力资源部经理张三负责公司的员工招聘工作,岗位职责是招人及员工管理;
  2. 而李四作为人力资源部的一名人事助理,其岗位职责则是员工信息的档案管理。
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2Fce91ac60j00r2nqm2000xc0015d00bsg.jpg&thumbnail=690x10000&quality=75&type=jpg

以上举例,局限于岗位职责。还有一些更加丰富、更加细腻的权限管理。比如:

  1. 张三是北京分公司的人力资源部经理,他只能够管理北京分公司员工和北京分公司下属的子公司(海淀子公司、朝阳子公司等)的员工;
  2. 王五是海淀子公司的人力资源部经理,他也只能够管理海淀子公司的员工。
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2Ff8424f77j00r2nqm3001oc0015d00k0g.jpg&thumbnail=690x10000&quality=75&type=jpg

这些岗位职责和资源(也称为数据)直接相关,又称为数据级权限管理。

二、“今生”的权限写照

1、现实与权限管理的映射关系

在互联网行业中,权限管理系统中的角色一般跟企业的组织架构是一致的:企业组织架构中的员工在什么岗位要做什么事情,跟权限管理系统中的用户是什么角色被允许进行什么操作,是一种对应关系。

所以企业架构中的员工、岗位、职责和资源 ,分别对应了权限管理系统中的用户、角色、权限和数据。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F023f6a76j00r2nqm3001lc0015d00k0g.jpg&thumbnail=690x10000&quality=75&type=jpg
2、权限管理的分类

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

  1. 功能级权限管理;
  2. 数据级权限管理。
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2Fd2913713j00r2nqm4001ac0015d00k0g.jpg&thumbnail=690x10000&quality=75&type=jpg

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

  1. 从系统获取数据,比如查询订单、查询客户资料;
  2. 向系统提交数据,比如删除订单、修改客户资料。
?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F185b6346j00r2nqm5001ec0015d00k0g.jpg&thumbnail=690x10000&quality=75&type=jpg

系统层面的权限管理,主要还是从控制力度上来进行设计。

三、如何进行权限系统设计

权限系统主要由三大部分构成:用户管理、角色管理、权限管理。

1、用户管理设计

账号作为一个用户登录系统的唯一身份标识,其主要通过用户管理进行维护,一般包含有列表页面、详情页面、新增页面。

可以先设想下用户管理大概需要用到哪些字段?梳理完的信息结构图如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F86da164fj00r2nqm60034c0018g014og.jpg&thumbnail=690x10000&quality=75&type=jpg

注:这里以最小可行性的字段设计为例,不同的企业所需要的字段要素会有所增减。

  • 用户编号:作为用户的唯一标识,一般由系统自动生成,由低到高递增;
  • 用户名:用户用于登录的账号,一般支持字母、数字和下划线,需区分唯一性;
  • 密码:账号登录密码,支持字母、数字和特殊字符,需区分大小写;
  • 角色:数据来源于“角色管理”中已维护的角色,可支持多选。

“角色”为什么要支持多选?咱们下面再讲。

为什么这里不设计一个详情页面?因为字段较少,列表已经能显示下所有的字段要素,所以没必要再新增一个详情页面。只有当列表页显示不下所有字段要素的时候,才有必要设计一个详情页来展示所有的用户信息。

现在信息结构图有了,接下来就可以开始设计原型,设计完的页面如下:

原型:用户管理

原型:用户管理

原型:新增用户

原型:新增用户

2、角色管理设计

系统中用户的权限是通过角色来控制,角色可以理解为具备一定权限的用户组,也叫权限的集合,划分角色的好处是可以大大降低用户权限分配的重复性工作量。

“角色管理”的信息结构图如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F89c1c546j00r2nqmb002ic0017c00ucg.jpg&thumbnail=690x10000&quality=75&type=jpg
  • 角色编号:角色的唯一标识,一般由系统自动生成,由低到高递增;
  • 角色名称:主要用于识别,可限制不可出现相同的角色名称;
  • 上级:选择所属上级角色,用于搭建组织架构。

根据信息结构图所设计的页面如下:

原型:角色管理

原型:角色管理

原型:新增角色

原型:新增角色

做到这里,“角色管理”还称不上结束,因为还差一个最关键的“权限”。

3、权限管理设计

上文中已经讲过,“权限”分为“功能权限”和“数据权限”。

“功能权限”可粗可细,粗可以到菜单级别,细则可达到功能按钮级别。

“数据权限”有两种处理方式:

  1. 一种是自动继承组织架构关系,这种不涉及页面配置,由程序根据用户的从属关系自动关联。比如:销售部经理可以查看整个部门的销售数据,而销售部的普通员工则只能看到自己的销售数据;
  2. 另一种则是由人工自行配置,划分所需要查看的数据权限。

那么,“角色管理”的信息结构图,加上“权限”后显示如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F1c655d4dj00r2nqmh005ac001km01gyg.jpg&thumbnail=690x10000&quality=75&type=jpg

(橙色为新增“权限”部分)

在企业中,一个员工可以身兼多个岗位,一个岗位也可能有多个员工,所以员工和岗位是多对多的关系,由此可以得出“用户”和“角色”之间也是多对多的关系。一个“角色”可以分配多个“权限”,同样一个“权限”可以分配给多个“角色”使用,故“角色”和“权限”之间也是多对多的关系。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F5534b9b9j00r2nqmi000oc0015d00awg.jpg&thumbnail=690x10000&quality=75&type=jpg

如果一个用户拥有多个角色,那这个用户的权限则取的是这多个角色权限的并集。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2F0eb8e62ej00r2nqmi002dc0015d00iog.jpg&thumbnail=690x10000&quality=75&type=jpg

“角色管理”的页面加上“权限”后如下:

原型:角色管理

原型:角色管理

原型:配置数据权限

原型:配置数据权限

原型:配置功能权限

原型:配置功能权限

另外,页面上的功能权限展示,建议与系统模块、菜单页面的顺序来排列好,便于用户理解。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2021%2F1116%2Ffe2013faj00r2nqms004lc0028001bsg.jpg&thumbnail=690x10000&quality=75&type=jpg

到此,权限系统差不多就设计完了,后续系统在不断的更新迭代时,权限系统也需要做对应的调整。大到功能模块的增、删,小到功能命名的变更,权限系统都需要做到同步变更,以求一一对应。

权限管理对于B端产品来说必不可少,权限管理具体应该做到什么程度,跟企业运营息息相关。在设计权限系统时,一定要结合企业发展,提前做好规划,才能满足业务需求。

作者:WOWdesign,研究设计价值最大化,涉及用户体验、品牌体验、空间体验。

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

题图来自Pexels,基于 CC0 协议


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK