一、博主初衷
权限分配几乎是每个web项目必有的模块,同时也是项目的基础模块,但是对于很多软件开发的初学者来说,对于权限分配的理解仅仅停留在其表面,只知其然,不知其所以然,至于内部如何把控,按钮如何控制显示等等,更是无从知晓。网上关于权限分配讲解的文章虽多,但是真正讲解透彻的微乎其微,有鉴于此,带着为了让软件初学者能够彻底了解权限分配的本质之目的,我于是决定利用工作闲暇之余,写一系列关于权限分配的博客,一来能够让大家了解原理本质,二来达到抛砖引玉之目的,让更多人的人,写出更优秀的博文。本系列博文重点讲解原理本质,只粘贴核心代码,文章写的不好的地方,欢迎批评与指正,文章中出现的图片来源于网络,如侵权,请及时告知,以便及时删除。新手可以驻足,老鸟敬请移步。
二、什么是权限分配
2.1、概念
基于角色的权限访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依新的需求和系统的合并而赋予新的权限,而权限也可根据需要而从某角色中回收。角色与角色的关系可以建立起来以囊括更广泛的客观情况。
![](https://img.haomeiwen.com/i5710460/5d5b41d69ebbc837.jpg)
2.2、举例阐述
上述流程图对于软件初学者来说有些抽象,举个“栗子”予以说明。譬如公司有个OA系统,财务部有两个人,分别为张三和李四,张三是“普通财务”,李四是“财务经理”。此时公司有个员工来借款,张三把这个员工的申请借款录入系统,但是该申请却需要财务经理来审核,只有审核通过才能放款。而此时,张三的角色就是“普通财务”,而李四的角色就是“财务经理”,张三只能登记借款申请,而李四却能审批借款请求。审核的能力就是权限,通俗点来讲就是“操作”。而张三想要有李四的“审批能力”,就必须拥有李四的“财务经理”角色,才能拥有“审批能力”,这就是基于角色的访问控制。
三、功能模块
3.1、用户管理
用于管理用户,包括对用户信息的修改、添加、多条件检索、删除、冻结、解冻。
3.2、角色管理
用于管理角色,包括对角色信息的修改、添加、删除、给角色分配权限。
3.3、权限管理
用于管理权限,包括对权限信息的编辑、添加、删除;
3.4、日志管理
3.4.1、登录、退出日志
用于记录系统用户登录、退出操作的日志信息。
3.4.2、异常日志
用于记录系统代码发生异常时的日志信息。
3.4.3、访问日志
用于记录用户访问模块时的日志信息。
3.4.4、操作日志
用于记录(增、删、查、改)等操作的日志信息。
3.5、字典管理
用户存储系统所需的配置项(键值对形式),检索、添加、编辑、删除。
3.6、区域管理
用于存储省市县镇村五级联动信息。——来源于国家统计局2016年统计成果
查看地址:点击查看详情
四、效果展示
说明:项目涉及隐私的地方,已被马赛克处理,由于页面较多,增改页面不做截图显示,请见谅。
4.1、登录页面
![](https://img.haomeiwen.com/i5710460/de79545e335f899c.png)
4.2、系统主页
![](https://img.haomeiwen.com/i5710460/9c9cbcaa1449fd53.png)
4.3、角色管理
![](https://img.haomeiwen.com/i5710460/3935ab80d06e33db.png)
4.4、角色授权
![](https://img.haomeiwen.com/i5710460/49f63c8214d79c84.png)
4.5、权限管理
![](https://img.haomeiwen.com/i5710460/f69a4c7b0ebd5829.png)
4.6、数据字典
![](https://img.haomeiwen.com/i5710460/2413151ff71dd8f6.png)
4.7、系统日志
![](https://img.haomeiwen.com/i5710460/1c150b4453b339e0.png)
4.8、行政区域
![](https://img.haomeiwen.com/i5710460/0be05f6525bfa36b.png)
五、文末扯淡
该篇文章主要是对权限设计做一个大概的介绍,详细设计请关注后续的博文,由于本人平时工作较忙,博文更新可能会慢些,请见谅!文章写得不好的地方,欢迎批评与指正。目前项目截图通过火狐浏览器的插件进行截图,但是分辨率不敢恭维,所以文章中的截图看起来有些模糊,如果你有更好的方法,欢迎留言或者私信给我。
网友评论