Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计

第二部分目录

* 总目录
Vue + Spring Boot 项目实战(十一):用户角色权限管理模块设计
Vue + Spring Boot 项目实战(十二):访问控制及其实现思路
Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登陆认证
Vue + Spring Boot 项目实战(十四):用户认证方案与完善的访问拦截
Vue + Spring Boot 项目实战(十五):动态加载后台菜单
Vue + Spring Boot 项目实战(十六):功能级访问控制的实现
Vue + Spring Boot 项目实战(十七):后台角色、权限与菜单分配
Vue + Spring Boot 项目实战(十八):博客功能开发web

前言

期盼已久的中秋假期在加班中进入了尾声,昨天一路狂奔追赶火车的疲惫还未散去,早晨又在施工的轰鸣中惊醒,虽然还有许多工做须要作,可是我决定给本身放一天假,去它喵的福报。后端

今天是个有特殊意义的日子,由于“白卷”项目迎来了新生!之因此选择今天开始,我想最大的缘由是由于今天太无聊了。。。决定不工做后闲得肚子疼(真疼),只能给本身找点事情干,另外一个系列的文章又没啥灵感,仍是先挑个软柿子捏吧。架构

这一段文章的阅读量涨了很多,分析了一下,应该是有很多同窗要作课程设计之类,呃,也算是为社会作出了点贡献???并发

接下来的内容就默认你们有必定基础了,不会再事无巨细地列出步骤。GitHub 上的源码会同步更新。框架

1、模块设计

用户角色权限管理是各种后台管理系统的重要组成部分,因为涉及多种概念与技术,实现起来稍微有一些难度,所以单独拎出来做为项目迭代的一个阶段,预计要用 5~7 篇来说。其实搞定了这个部分,基本上就能够独立完成各类功能开发了,再日后走就是并发集群分布式这些玩意儿了,你们加油,坚持坚持翻过这座大山,后面也就剩个几十座了。。。分布式

下图展现了该模块的基本功能:
在这里插入图片描述
下面展开说一下。svg

1.用户管理

  • 用户信息: 显示用户的基本信息(昵称、联系方式、角色、部门等)
  • 组织架构: 显示、配置(增删改)组织架构,通常为树结构
  • 用户操做: 为用户分配角色(多对多)、组织架构(多对多),删除用户
  • 用户黑白名单: 对特殊用户进行特别控制

2.角色管理

  • 角色信息: 显示角色的基本信息(名称、权限等)
  • 角色操做: 根据须要增删角色、为角色分配权限(多对多,按不一样粒度分配,并实现权限的互斥性检验)

3.权限管理

权限通常有以下三种粒度:布局

  • 菜单权限: 访问某一菜单(页面、路由)的权限
  • 操做/功能权限: 进行某一操做或使用某一功能的权限(如删除用户的权限)
  • 数据权限: 访问某种数据(表、字段)的权限,或对可操做数据量的控制

对权限的管理主要是根据须要增删权限内容,也就是维护三个权限列表(对应不一样粒度),这个不难,难点在于怎么让这些个权限生效。加密

4.UI 设计

这个模块我打算改成纵向导航布局,这样更贴近后台管理的设计思想。未来图书管理也可移植到这个模块,原来的布局则做为前台的基础。.net

下图是我过去开发的一个内容管理后台,你们能够简单感觉一下。因为应用场景比较具体,用户管理的地方要比本项目设计的容易许多。
后台界面
明眼人可能看出来上面的是用 ExtJS 作的,Ext 真是一个企业 Web 应用开发神器,惋惜在流量社交互联网时代不那么亮眼。

2、技术分析

从开发的角度考虑,该模块的技术要点以下:

  • 用户、角色、权限、组织架构表结构设计
  • 用户身份验证、受权、会话管理,用户信息的加密存储
  • 不一样粒度权限的具体实现

讲道理仍是挺复杂的,但咱们能够利用 shiro 框架极大地简化咱们的开发。不得不说,用 Java 作后端仍是很省心的,几乎全部的应用场景都有一套成熟的框架。

我会在教程中讲清功能实现的逻辑,你们也能够尝试不使用 shiro 提供的 API 而本身开发相关功能,以提升对更底层的东西的认知。

3、计划安排

有些从几个月前就开始看这个系列的同窗应该发现了,我这我的最大的毛病就是文章写的慢,过去我感受写文章像喝凉水同样随便,结果每次写完一篇文章都精疲力尽头晕眼花,干什么事都不容易啊。

我估摸着不发生意外的话今年能把这部分写完。。。。因此虽然我感受为这部分新开一个系列会有更多流量,但仍是默默地编入第十一篇,老被催更怪很差意思的。

开发却是省力一些,我尽可能早点把代码撸完哈。图灵保佑我最近不要老加班。

查看系列文章目录:
https://learner.blog.csdn.net/article/details/88925013

上一篇:Vue + Spring Boot 项目实战(十):图片上传与项目的打包部署

下一篇:Vue + Spring Boot 项目实战(十二):用户角色权限管理模块设计