权限管理系统
权限管理是企业级项目其中的一个模块,用于用户登录验证,权限和角色分配以及增删改查,提升系统的安全性。
基于RBAC权限控制,涉及的对象:
- 用户
- 角色
- 权限
涉及的功能:
- 登录
- 主页面
- 菜单显示,不同的用户展示不同菜单
- 用户的增删改查+分页
- 用户的角色授权
- 角色的增删改查+分页
- 角色的权限授权
- 权限的增删改查+分页
涉及的技术:
- SpringBoot
- SpringMVC
- MyBatis
- SpringSecurity
- Thymeleaf
- Vue
- ElementUI
页面截图:
登录
主页面
角色管理
登录
RESTFul + Vue + Axios + ElementUI
登录页面思路:
- 导入相关的js和css
- 创建Vue对象,配置el和data…
- 使用ElementUI
- 使用Axios调用登录接口
分析:
- 需要向后台传递什么数据 —> 账号、密码、记住我
- 在data中定义相关的数据
- 在页面中进行数据绑定 v-model
后台:
如何使SpringSecurity处理登录请求,直接返回数据
将SpringSecurity配置页面跳转的位置改为用流返回数据结果
思考题:
根据用户名查询相关的权限包含下级权限
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Functions {
private String id;
private String name;
private String description;
private String url;
private String pid;
private String icon;
private long sort;
//下级权限
private List<Functions> subFunctions;
}
主界面
确定需求:实现权限菜单的上下级展示
- 修改权限实体类,添加下级权限集合
- 在权限DAO中添加按用户名查询权限的方法
- 在mapper编写SQL语句(先在NaviCAt中进行试验)
- 在IDEA的单元测试中测试DAO
- 完成service
- 完成controller,整合Swagger测试
- 前端编写Vue,定义权限列表数据,查ElementUI文档
角色分页
- 定义实体类包装分页数据(数据列表、当前页、总页数、总行数)
- 完成查询总行数
- 完成分页查询列表
- 整合到service
- 由controller调用,传入当前页
角色授权
角色的授权
功能需求:
- 表格的单选效果
- 添加对话框,包含树控件
- 展示所有的权限
- 将选择的角色所拥有的权限勾中
- 勾中权限后实现权限的添加
- 取消勾中删除角色的权限
单选效果
- 添加复选框列
<el-table-column
type="selection"
width="55">
- 定义data,当前选择的角色
- 在表格的@current-change事件中调用函数
- 函数中实现全部取消和选择当前角色
选中角色对应的权限
- 查询对应角色所有的权限
- 弹出角色授权对话框时,查询角色的权限,实现权限勾中
勾选和取消勾选权限
- 完成查询角色权限关系、添加角色权限关系、删除角色权限关系接口
ange事件中调用函数 - 函数中实现全部取消和选择当前角色
选中角色对应的权限
- 查询对应角色所有的权限
- 弹出角色授权对话框时,查询角色的权限,实现权限勾中
勾选和取消勾选权限
- 完成查询角色权限关系、添加角色权限关系、删除角色权限关系接口
- 在树节点的勾选和取消勾选事件调用
版权声明:本文为weixin_44953152原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。