权限管理的实现方法之菜单权限与角色权限

随着spring cloud项目越做越多,接触到很多以前没接触过的知识。
这次接触到的是权限管理方面的任务。
我涉及到的权限管理分为一下几种:

1、菜单权限
2、角色权限
3、接口权限
4、数据权限

无论是什么类型的权限,数据库的设计极为重要!!
这次先分享一下菜单权限、角色权限的实现以及数据库的设计

首先是菜单的数据库设计:

字段名类型注释
menu_idint菜单Id
menu_namevarchar菜单名称
menu_keyvarchar菜单标识
componentvarchar菜单布局
parent_idint父菜单布局
targetvarchar打开方式
order_numint显示顺序
menu_typechar菜单类型(M目录 C菜单 F按钮)
visibleint菜单状态(0显示 1隐藏)
permsvarchar权限标识
pathvarchar链接
redirectvarchar重定向
hidden_childrenint强制菜单显示为Item而不是SubItem
hidden_headerint特殊 隐藏 PageHeader 组件中的页面带的 面包屑和页面标题栏
create_byvarchar创建者
create_timedatetime创建时间
update_byvarchar更新者
update_timedatetime更新时间
remarkvarchar备注

这边给出目录和菜单的定义:
在这里插入图片描述
当某个菜单定义为目录或菜单时,menu_key菜单标识和component菜单布局,一定要有!!!!他是用来前端对接使用的。如果按钮的权限要求不是那么严格,那么按钮这两个字段可以不要。

然后是角色数据库的设计:
在这里插入图片描述
这里参考了若依的角色权限设计,role_key角色权限字符串的作用暂时未知。
有了这两个表,以及这两张表主键的关联表之后。菜单权限就算完成大半了。接下来就是给前端提供查询菜单权限的接口了,sql语句请自行编写。

public List<ResUserMenuListVO> selectMenusByUser()
    {
        List<ResUserMenuListVO> menus = new LinkedList<>();
        // 判断登录的角色
        //如果是管理员,则显示所有菜单信息
        if (AuthUtil.isAdmin())
        {
            menus = menuMapper.selectMenuNormalAll();
        }
        //如果是其他角色,就通过角色,查询出所有菜单参数
        else
        {
            menus = menuMapper.selectMenusByUserId(AuthUtil.getCurrentId());
        }
        // 前端自行构造菜单树
        return menus;
    }

在这里插入图片描述
到此,就完成了菜单权限、角色权限。其他对菜单、角色的增删改查,请自行编写。这里就给出实现的关键步骤。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值