ABP开发框架前后开发系列——(9)ABP框架权限控制管理
浏览:376 次

前两篇文章“”和“”介绍了权限管理的内容,其中只列出了内部权限系统的审核和登录信息以及Winform界面的集成。本文继续介绍ABP开发框架的权限控制管理内容,包括用户、角色、机构、权限等,以及该框架在Winform中的应用集成。
1.ABP框架的权限控制管理内容
众所周知,权限管理通常涉及用户、组织、角色和权限功能。ABP框架的基本内容也涉及这些方面。它们之间的关系基本上是多对多的,如下所示。
形象
然而,在官网下载的框架中,包括权限管理在内的应用服务层和呈现层的内容并不完整。它只是包括用户和角色的基本管理,并且没有提供权限管理所需的许多基本功能。
根据ABP框架提供的基本数据库表,我们可以进一步梳理权限管理的几个重要概念与真实数据库表之间的对应关系。基于此,我们可以改进整个权限管理模块的内容。
形象
上图显示了ABP基本框架的权限模块中包含的一些主要对象表和中间表。中间表主要用于存储两个对象之间的多对多关系,例如包含多个用户的角色、属于多个组织的用户以及包含多个角色的组织。
2.基于ABP框架的权限管理模块
**1) 组织管理**
组织主要是一种层次化的对象关系,通常包括但不限于公司、部门、工作组等的定义。组织包括用户成员和角色成员之间的关系,如下图所示。
形象
组织中包含的成员可以添加多个人员记录。界面如下所示。
形象

添加角色的界面如下所示。
形象
**2) 角色管理**
角色信息没有层次关系,可以显示在列表中。
形象
角色包括权限分配和角色成员维护。下面是角色编辑界面,包括角色基本信息、权限、成员管理等。
形象
角色权限包括系统中可用的权限,可以查看角色设置所需的功能节点,如下图所示。
形象
用户成员可以指定多个用户,就像组织的用户管理一样。
3) 用户管理
用户管理只需要管理用户的基本信息。如果我们需要分配角色,我们可以在角色管理中统一处理它们。当然,在创建用户时,您还可以以与ABP框架的收费版本界面相同的方式为用户指定角色和组织信息。
我在这里主要维护用户信息。用户列表界面如下所示。
形象

在用户编辑或查看界面中,您不仅可以查看用户的基本信息,还可以查看用户包所属的组织(多个)或角色(多个
形象
当然,您可以查看用户自身的权限功能节点,如下图所示。
形象
4) 权限功能
严格来说,ABP框架并不统一管理权限功能点。它没有任何表来存储此函数集。相反,它通过派生AuthorizationProvider的子类来定义权限函数点。这需要通过指定AuthorizationProvider的子类来创建功能点。系统模块每次添加功能点时,都需要对其进行编码,然后添加自己的功能点,如下图所示。
形象
这种方法可以满足大多数需求,但如果我需要增量开发或动态添加一些功能点,则有点不便。
在此基础上,我引入了一个权限函数表来存储功能节点,然后提供了一个管理接口来动态维护这些功能节点。如下图所示。
形象
通过这种方式,我可以动态添加或批量添加所需的功能点,并将它们与整个权限管理模块连接起来,形成一个完整的控制系统。
形象
这些概念主要来自我的Winform开发框架和混合开发框架中的控制思想,以及界面显示的处理。
通过这种方式,我们可以管理自己的权限功能节点,并为指定的角色配置相关的控制功能节点。福利斯