每一年都奔走在自己热爱里

没有人是一座孤岛,总有谁爱着你

若依按钮权限

最近客户要求菜单添加按钮权限,于是我对照系统管理板块添加了按钮权限。(照猫画虎)

1、添加按钮菜单

  • 菜单类型:按钮
  • 菜单名称:按钮名称
  • 权限标识:板块:菜单名称:按钮名称

获取登录人权限标识的sql

SELECT DISTINCT
    m.perms 
FROM
    sys_menu m
    LEFT JOIN sys_role_menu rm ON m.menu_id = rm.menu_id
    LEFT JOIN sys_user_role ur ON rm.role_id = ur.role_id
    LEFT JOIN sys_role r ON r.role_id = ur.role_id 
WHERE
    m.STATUS = '0' 
    AND r.STATUS = '0' 
    AND ur.user_id = '44';

2、 前端vue添加v-hasPermi属性

前端中使用v-hasPermi指令就可以判断当前登录人权限字符中是否包含某些特定的权限字符,就可以判断是否展示使用指令的组件。

<el-button 
   size="mini" 
   type="primary" 
   plain      
   @click="handleAddNew" 
   icon="el-icon-plus" 
   v-hasPermi="['risk:ichnography:add']">添加
</el-button>

3 后端接口添加@PreAuthorize注释

后台接口添加@PreAuthorize(hasPermi = "risk:ichnography:add") 即可

/**
 * 测试
*/
@PreAuthorize(hasPermi = "risk:ichnography:add")
@GetMapping(value = {"/", "/{userId}"})
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId) {
    //忽略代码
    return ajax;
}

4 测试准备
创建角色:【按钮权限的角色】

创建测试账号【defu】

创建测试角色

创建测试账号【suao】操作步骤忽略

defu看到的页面:

suao看到的页面:

总结:

a、配置按钮级的菜单
b、权限分配
c、前端添加v-hasPermi="['risk:ichnography:add']" 注意:权限标识
d、后端接口添加@PreAuthorize(hasPermi = "risk:ichnography:add")注解
e、测试

posted @ 2022-07-27 15:19  星星之草%  阅读(9215)  评论(1编辑  收藏  举报