内容简介:在前面两篇随笔《我们知道,权限管理一般都会涉及到用户、组织机构、角色,以及权限功能等方面的内容,ABP框架的基础内容也是涉及到这几方面的内容,其中它们之间的关系基本上是多对多的关系,它们的关系如下所示。
在前面两篇随笔《 ABP开发框架前后端开发系列---(7)系统审计日志和登录日志的管理 》和《 ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程 》开始介绍了权限管理的内容,其中只是列出了内部的权限系统的审计和登陆信息,以及对Winform界面的整合,本篇随笔继续介绍ABP开发框架的权限控制管理内容,包括用户、角色、机构、权限等方面,以及该框架在Winform方面的应用集成。
1、ABP框架的权限控制管理内容
我们知道,权限管理一般都会涉及到用户、组织机构、角色,以及权限功能等方面的内容,ABP框架的基础内容也是涉及到这几方面的内容,其中它们之间的关系基本上是多对多的关系,它们的关系如下所示。
不过在官网下载的框架里面,包含权限管理这些应用服务层和展示层的内容并不完整,只是简单的包括了用户和角色的基础管理,而且很多权限管理所需要的基础功能并没有提供。
根据ABP框架提供的基础数据库表,我们可以进一步整理权限管理几个重要概念和真实数据库表之间的对应关系,基于这个基础上,我们可以完善整个权限管理模块内容。
上图是ABP基础框架中权限模块里面包含的一些主对象表和中间表,中间表主要用来存储两个对象之间的多对多关系,如角色包含多个用户,用户属于多个机构,机构包含多个角色等等。
2、基于ABP框架的权限管理模块
1)组织机构管理
组织机构主要就是一个层级的对象关系,一般包含但不限于公司、部门、工作组等的定义,其中组织机构包含用户成员和角色成员的关系,如下界面所示。
组织机构包含的成员可以添加多个人员记录,添加界面如下所示。
添加角色界面如下所示。
2)角色管理
角色信息没有层级关系,可以通过列表展示。
其中角色包含权限分配和角色成员的维护,如下是角色编辑界面,包含角色基本信息、权限、成员管理等。
角色的权限包含系统可以用的权限,并可以勾选为角色设置所需的功能点,如下界面所示。
用户成员则和机构的用户管理一样,可以指定多个用户。
3)用户管理
用户管理只需要管理用户基本的信息即可,我们如果需要分配角色可以在角色管理里面统一处理。当然,创建用户的时候,也可以ABP框架的收费版本界面一样,为用户指定角色和机构信息。
我这里主要是维护用户信息即可,用户列表界面如下所示。
用户编辑或者查看界面,除了可以看用户基础信息外,可以查看用户包所属的机构(多个),或者所属的角色(多个)
当然可以查看这个用户本身拥有的权限功能点,如下界面所示。
4)权限功能
严格来说,ABP框架并没有统一管理好权限功能点的,它没有任何表来存储这个功能集合,而是通过派生AuthorizationProvider的子类来定义权限功能点,这种需要通过指定AuthorizationProvider的子类的方式创建功能点,需要每次系统模块增加功能点的时候,编码一下,然后增加自己的功能点,如下界面所示。
这种方式可能能够满足大多数的需要,不过我如果需要增量开发,或者动态增加某些功能点的时候,就有点不方便了。
我在这个基础上引入了一个权限功能的表用来存储功能点的,然后提供管理界面来动态维护这些功能点。如下界面所示。
这样我可以动态添加或者批量添加所需要的功能点,并且和整个权限管理模块串联起来,形成一个完整的控制体系。
这些概念主要还是来源于我的Winform开发框架和混合式开发框架里面的控制思路,以及界面展示的处理。
这样我们就可以管理自己的权限功能点,并可以为指定的角色配置相关的控制功能点,如下表所示是角色的权限集合(系统中间表),也就是给角色分配的功能点,依旧是在原来的系统表里面存储。
以上所述就是小编给大家介绍的《ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- ABP开发框架前后端开发系列---(2)框架的初步介绍
- ABP开发框架前后端开发系列---(14)基于Winform的ABP快速开发框架
- ABP开发框架前后端开发系列---(8)ABP框架之Winform界面的开发过程
- 如何基于Winform开发框架或混合框架基础上进行项目的快速开发
- 用大型开发框架开发小程序那点事儿
- .net快速开发平台—web快速开发框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。