权限管理功能的设计思路,你知道吗?

权限管理功能的设计思路,你知道吗?

角色权限表设计_角色权限表设计_角色权限表设计

今天我就给大家系统的讲解一下权限管理功能的设计思路。 也适合没有做过或者即将做权限管理功能模块的同学,做一些系统扫盲。

同样,制作产品有一些基本设置:

定位决定需求,需求决定功能。

因此,权限管理功能在某种意义上必须满足一定的需求。 我们先从需求开始,讲一下管理背景。

权限管理模块的要求包括以下三点:

(1)对应用系统所有资源的权限进行控制,如应用系统的功能菜单、各界面的按钮控件等;

(2)完善用户、角色、组织、资源、运营的管理功能。 组织管理模块仅提供组织视图,不参与权限的控制和管理。

(3)开发者通过资源和角色模块开发新的系统功能并进行运营管理。 以系统管理员身份登录,直接授权角色资源的访问路径进行操作,实现资源访问控制管理。

因此,从需求范围来看,权限可以分为三种:页面权限、操作权限、数据权限。

页面权限控制哪些页面可以看到,哪些页面不能看到,也称为菜单权限控制。 很多系统只实现了控制页面级别,实现起来比较简单,并且与操作权限有一定的相关性,所以这里我们将其与操作权限合并。 (页面权限可以理解为操作权限的最低级别权限:浏览)

操作权限控制您可以操作页面上的哪些按钮。 当我们进入一个页面的时候,我们的目的无非就是对这个页面进行增删改查。 页面对应的操作可能是:查询、删除、编辑、添加四个按钮)也许你在某个页面,数据只能查询,不能修改。

数据权限控制您可以查看、管理和导出的数据。 例如,A部门的人员只能查看或修改A部门创建的数据,而无法查看或修改B部门的数据。

好了,说完了权限管理的范围,我们接下来考虑如何管理操作权限和数据权限。 这里我们介绍一个成熟的概念,叫做RBAC模型。

RABC(Role-Based Access Control),基于角色的访问控制。 通俗地说,权限并不是直接分配给用户,而是分配给用户所拥有的角色。

这样做有什么好处呢? 这样做的好处是,如果用户总数非常多,分配权限会很累。 基于RBAC的权限控制更适合企业应用。

RBAC 有四种主要模型。 RBAC根据模型功能的复杂程度可以分为四个级别:RBAC-0、RBAC-1、RBAC-2和RBAC-3。 从简单到复杂。

角色权限表设计_角色权限表设计_角色权限表设计

RBAC-0:

RBAC-0是最基本的,就是建立用户和角色、角色和权限之间的关系。 每个关系都是多对多的。

角色权限表设计_角色权限表设计_角色权限表设计

RBAC-1:

RBAC-1是在RBAC-0的基础上增加了继承关系。 即一个角色只能拥有另一角色的部分权限,并且该角色的权限受另一角色权限的影响。 简单来说,角色2是从角色1派生出来的,所以角色2的所有权限一定都小于角色1。角色1有权限1和23D角色,而角色2只有权限1。

角色权限表设计_角色权限表设计_角色权限表设计

RBAC-2:

RBAC-2模型实际上是一种角色冲突。 一个简单的例子就是,你不能同时担任运动员和裁判员,否则关系就会搞乱。 这是用户 3,他不能同时拥有角色 2 和 3。

角色权限表设计_角色权限表设计_角色权限表设计

RBAC-3:

RBAC-3是RBAC-1和RBAC-2的结合,可以理解为1+2。 既有继承关系,也有限制,基础是一样的。

好了,讲完了RBAC模型,我们进入下一步。 如何使用RBAC模型来管理操作权限和数据权限?

(1)数据权限管理

数据权限是指用户是否可以看到某些数据。 主要用于数据有保密要求音效,或者数据量较大,需要按用户或角色区分的情况。 例如:财务总监可以在后台看到公司每个人的薪资流向,但普通员工只能看到自己的薪资流向。

说到这里,可能有人会想,既然我们的权限是和角色相关的,为什么“查看薪资流水”的权限要精确到每个用户呢? 事实上,这是 RBAC-2 的一种。 权限与角色关联后,会增加限制,但这些限制无法在页面上灵活配置。 数据权限粒度由粗到细可分为菜单级、栏目级、字段级,通用配置页面可灵活操作。

(2)操作权限管理

操作权限是指用户是否可以操作相应的按钮。 在拥有操作权限之前需要有数据权限,所以需要添加系统自动验证:如果选择操作权限,则默认勾选查看(数据)权限; 如果取消数据权限,则操作权限也自动取消; 以上就是我们为共享内容设计的单系统的权限。 在多系统权限设计中,虽然理论基础是相同的,但由于涉及到多个系统,因此会出现很多其他问题,需要分别解决。

角色权限表设计_角色权限表设计_角色权限表设计

所以这里我们可以做一个总结,RBAC1实际上是一个角色分类模型。 角色之间的继承关系可以分为一般继承关系和受限继承关系。 一般继承关系只要求角色继承关系是绝对偏序关系,允许角色之间多重继承。 受限继承关系还要求角色继承关系为树形结构。

RBAC2 是一种角色限制模型。 它规定了为角色分配权限、为用户分配角色以及用户在某一时刻激活角色时应遵循的强制规则。 职责分离包括静态职责分离和动态职责分离。RBAC2模型中约束和用户-角色-权限关系决定了用户访问权限

RBAC3是一个统一的模型。 角色+角色分类+角色限制的三重限制是一个类似于交集的概念。

好,接下来我们讨论一下,如果我们真正设计一个系统的权限管理功能,我们需要设计哪些子功能呢?

权限管理

每个用户组的管理员都可以添加用户并授予用户权限。

权限是指对某个资源的操作。 现在规定所谓的资源就是系统的模块; 所谓操作包括:添加、删除、修改、查询等操作。

权限管理系统总体功能分为:授权和认证。 授权是指向角色或用户授予权限。 如果用户A拥有角色B和角色C,那么默认情况下,用户A将拥有分配给角色A和角色C的所有权限。如果用户拥有多个角色,则该用户的权限是这些角色权限的集合。

总体来说可以分为模块管理、角色管理、用户组管理和用户管理模块:

模块管理:

由于模块是树形结构(本系统仅支持两级模块结构),我们可以点击其中一个模块,打开其子模块进行维护;

角色权限表设计_角色权限表设计_角色权限表设计

角色管理:

您可以添加角色信息、删除角色信息、对角色进行授权。 在该界面上,以二级模块的形式列出了系统中的所有模块,以及对这些模块的CRUD(添加、读取、更新、删除)权限; 所谓“启用”是指该设置有效,否则该设置无效。

角色权限表设计_角色权限表设计_角色权限表设计

用户组管理:

它与角色管理流程基本类似角色权限表设计,只不过用户组的权限是其用户组下的用户的基本权限,而角色的权限是其用户组下的用户的附加权限。

用户管理:

因为用户实际上就是系统人员的账号角色权限表设计,而每个人只能有一个账号,所以用户管理主界面实际上是系统中所有人员的列表!

角色权限表设计_角色权限表设计_角色权限表设计

[分配帐户] - 将帐户分配给某人。 如果已有账户,会提示无法再分配该账户。 如果要修改账户,需要先删除账户,然后重新分配。

[删除帐户] - 提示您是否删除帐户。 如果确认,请发送删除请求。 删除成功后,刷新界面。

[分配角色] - 为用户分配角色。 一个用户可以拥有多个角色;

好了,我们今天的系统素养就到此为止。 如果您觉得有帮助,请点赞并观看。 谢谢你!

角色权限表设计_角色权限表设计_角色权限表设计

结尾

本文作者是我的好友穆宁。 他是一名高材生,拥有北京邮电大学硕士学位。 他曾参与BAT并创业,现在在一家央企工作。

关注他的公众号,后台回复“0303”,他就会给你发一套权限管理系统案例和思维导图。

文章来源:http://mp.weixin.qq.com/s?src=11×tamp=1695708765&ver=4797&signature=fO4ljdH-MqFf3KOT5Pfd3vs5sYhglKQGMz6CUhHc9ADDPWKtzFQxC8eVD1xVpqBHS-cyFFt-SLqHvgIO4zvT7B1yWrqj0tOalzDzhK3*tsmnYHsomSqGq5TYEQGvRHW2&new=1