动态菜单/权限管理的实现

86 篇文章 1 订阅

权限管理

现在基本上大大小小的系统都由权限分配这一基础功能,不同的用户看到的界面不一样,能够使用的功能也不会尽然相同

所以我要让我的系统做到超级管理员可以看到/操作所有界面,而新闻管理员只能看到新闻管理模块,仓库管理员只能看到仓库管理模块等等。。。

思想

动态菜单:系统里面有很多菜单可以进行点击操作,但是不同的角色用户能够操做的菜单肯定是不会相同的,那么,我就需要用角色来区分用户,进而区分用户所能看到/操作的菜单

每个菜单我给其定义一个url,通过该url访问对应的菜单,将这个url和角色进行绑定,然后角色和用户进行绑定,属于同一角色下的用户也就拥有该角色下绑定的url

数据表

这里有五张表,也就是上面说的菜单表、角色表、用户表、角色菜单关联表和角色用户管理表

下面写的是关键字段,其它字段省略

菜单表-menu

字段说明
menu_id菜单记录id
menu_name菜单名称,也就是我们在系统里看到的菜单选项的名称
menu_url菜单的访问url,通过该url才能访问菜单的内容
parent_id父菜单id,如果是子菜单,则记录其父菜单id,否则,-1记录呗
order菜单级别,对菜单分级进行记录,1级菜单,2级菜单。。。

角色表-role

字段说明
role_id角色id
role_name角色名称

用户表-user

字段说明
user_id用户id
user_name用户名

角色菜单表 role_menu

字段说明
role_menu_id角色菜单关联记录id
role_id角色id
menu_id菜单id

角色用户表 role_user

字段说明
role_user_id角色用户id
role_id角色id
user_id用户id

通过上面五张表的设计及其关联,可以在用户登录的时候,根据该用户所属的角色,在role_menu表里找出所有的菜单的实体集合,然后放在session里面,登录跳转后从Session里读出菜单集合,这样就可以实现动态菜单,每个角色下的菜单操作权限也就实现了。

具体的每个菜单下的小权限,比如按钮、下拉框、搜索框之类的权限操作,可以读取菜单的url的session后通过Js进行这些操作表单的隐藏或者显示,综上,动态菜单和菜单下内容的具体小权限操作都能实现


有疑问还请指出,有其它更好的方法可以评论区交流

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值