权限控制 system:menu:list、system:menu:add 是什么东西?

这类像 system:menu:listsystem:menu:add 的字符串,是在后台权限管理系统中常见的权限标识符(也叫权限编码、权限字符串),下面逐一解释:


 一、它是什么?

这些是权限标识符(Permission Code / 权限字符串),用于:

用途举例说明
后台管理用户权限判断用户是否有“新增菜单”、“查询菜单”权限
前端按钮级别控制控制按钮是否显示,比如“添加菜单”按钮
接口权限控制拦截接口请求,例如无权限用户访问 POST /menu/add 被拒绝

 二、格式结构说明

system:menu:add 为例,它一般遵循格式:

模块:资源:操作
组成部分示例说明
模块system所属模块,比如“系统管理”
资源menu操作资源,比如“菜单”
操作add执行的动作,比如“新增”

 三、每个代表什么意思?

权限标识符意义通常用于
system:menu:list查看菜单列表页面菜单初始化,展示菜单树
system:menu:query查询单个菜单点开某个菜单进行详情
system:menu:add添加菜单表单页面点击“新增”按钮
system:menu:edit修改菜单编辑操作
system:menu:remove删除菜单删除操作按钮或接口

 四、在系统中一般怎么用?

1. 接口权限控制(后端拦截器使用):

例如 Spring Security、Shiro:

@PreAuthorize("hasAuthority('system:menu:add')")
@PostMapping("/menu/add")
public AjaxResult add(@RequestBody Menu menu) {
    return menuService.add(menu);
}

只有拥有 system:menu:add 权限的用户才能访问这个接口。


2. 前端按钮显示控制(Vue、React)

<el-button
  v-if="hasPermission('system:menu:add')"
  @click="handleAdd"
>新增</el-button>

没权限的用户,前端页面不会显示“新增按钮”。


 五、配合角色使用

通常这些权限标识符被分配到“角色”中,比如:

角色拥有权限
超级管理员所有权限
系统管理员system:menu:*
普通用户system:menu:list, query

这样用户通过角色绑定权限标识,从而间接拥有了某些按钮/接口的访问能力。


 小结

权限标识符用途
system:menu:list查询菜单列表权限
system:menu:add新增菜单权限
system:menu:edit编辑菜单权限
system:menu:remove删除菜单权限
 本质:用于控制用户能访问哪些接口 / 按钮

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值