21

大家心心念念的权限管理功能,这次安排上了!

 4 years ago
source link: https://juejin.im/post/5e4bd8416fb9a07c9f3fd5dd
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

大家心心念念的权限管理功能,这次安排上了!

SpringBoot实战电商项目mall(25k+star)地址:github.com/macrozheng/…

mall项目的权限管理功能发布啦!权限管理作为后台管理系统的必要功能,mall项目之前的权限管理并不完善。最近我对原先的权限管理进行了重新设计,打造了一套切实可用的权限管理功能。

  • 菜单管理:可以实现对后台管理系统左侧菜单的管理,支持更换图标、更换名称、控制菜单显示和排序;
  • 资源管理:实现了基于访问路径的后台动态权限控制,控制的权限可以精确到接口级别;
  • 角色管理:可以自定义角色,并为角色分配菜单和资源;
  • 后台用户管理:可以对后台用户进行管理并分配角色,支持分配多个角色。

接下了我们对权限管理功能做个介绍,演示一个完整的权限管理的流程。

菜单主要是指管理后台左侧的菜单,管理功能可用于控制其隐藏显示及更换图片名称和排序,目前仅支持二级菜单。

  • 查看菜单列表,可以控制隐藏显示及删除;
1
  • 添加及编辑菜单,可以更改菜单的基本属性,不过只能添加前端项目路由中定义的菜单,并且前端名称要与前端项目中定义的路由名称一致;
1
  • 菜单排序,给菜单设置排序后,菜单将按照设置的排序降序进行显示。
1

所谓资源就是后台的接口,可以是单个接口,也可以是一系列接口的集合。这里我们使用了基于Ant的路径匹配,当后台用户访问某个接口时,如果这个后台用户分配了该资源就可以访问,否则无法访问。默认情况下,如果你没有对某个接口配置资源,则该资源直接允许访问。

  • 查看资源列表,目前的资源是按控制器级别配置的,即一个控制器中所有的接口定义为一个资源,也可以配置到接口级别;
1
  • 添加及编辑资源,这里我们添加了一个资源分类的概念,便于以后的资源分配;
1

用于对后台用户角色进行管理,我们可以给角色分配指定的菜单和资源,这样被分配了角色的后台用户就可以访问这些菜单和资源了。

  • 查看角色列表,这里我们需要注意下这三个角色商品管理员订单管理员超级管理员
1
  • 添加及编辑角色用于管理角色的基本属性;
1
  • 分配菜单,可以给角色分配允许访问的菜单;
1
  • 分配资源,可以给角色分配允许访问的后台资源;
1

后台用户管理

用于对后台用户进行管理,直接修改信息(包括修改密码)及分配角色。

  • 查看用户列表,可以控制帐号的启用状态及删除帐号;
1
  • 添加及编辑用户,可以管理用户的基本信息及修改密码;
1
  • 分配角色,可以为用户分配角色,指定角色用户可以访问指定菜单和资源。
1

动态菜单控制

这里我们来演示下动态菜单的控制,我们有两个后台用户,系统管理员和商品管理员,系统管理员分配了所有菜单,商品管理员只分配了商品相关的菜单。

  • 使用系统管理员帐号登录,左侧显示了所有菜单:
1
  • 使用商品管理员帐号登录,左侧仅显示商品相关菜单:
1

动态资源控制

这里我们来演示下动态资源的控制,我们给商品管理员只分配了商品相关的资源,他无法访问其他资源。

  • 将订单相关菜单开放给商品管理员,但是并没有给他分配订单相关的资源;
1
  • 由于没有给商品管理员分配订单模块相关后台资源,所以当商品管理员访问订单模块时会提示没有相关权限。
1

项目源码地址

友情提醒,需要导入项目中document文件夹下最新的sql文件,再下载最新的前后端代码才能体验该功能!

mall项目全套学习教程连载中,关注公众号第一时间获取。

公众号图片




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK