社团管理系统项目devLog——4、权限控制

2021.10.01
项目参考:
1、后端:https://www.bilibili.com/video/BV1y7411R73P
2、前端:https://www.bilibili.com/video/BV1fw411d7R5?p=31

权限控制
1、从后端获取该用户拥有的权限
因为antd渲染时需要特定的层级结构,所以就沿用之前渲染表格写的接口,然后进行了一些调整
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

感觉这么写好麻烦,而且在循环里面调用SQL感觉不太好
SQL也是,连接了4个表(根据userId通过中间表user_role获取其角色,在根据其角色通过中间表role_permission获取权限,再以父权限id为条件查询“某用户拥有的某父菜单下的二级菜单”),这条sql要执行多次
但是我不知道这种层次结构还能怎么写了

2、前台渲染
在这里插入图片描述
有对应的权限,才展示对应的菜单,从而实现权限的控制

// TODO 路由权限控制
但是这样还有个问题,因为前端路由控制是写死的,所以就算没有菜单,但只要知道菜单的路径,也能访问相应的内容,所以要做的更好的话,需要动态配置前端路由,这点后面再考虑要不要做
在这里插入图片描述

另外还学到一个很酷的东西,即页面切换的loading效果
在这里插入图片描述
每次切换路由都会重新渲染SysRouter,所以在其return前start(),并在mount后(即useEffect生命周期函数)done(),就能实现loading的效果。
// TODO 今天算了埋了两个坑了
既然路由切换的loading做了,也考虑后面做一下异步请求后台数据的loading效果,用axios的拦截器貌似可以做到(否则要么封装axios,要么在所有的axios上添加loading效果),貌似是一个不错的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值