# 按钮权限
# 概述
应用权限的控制力度到按钮级别,应用多种业务场景的按钮权限。
由于一些特殊的业务场景需求(如提取公共方法类),权限控制由自定义处理,
仿shiro配置.
# 默认按钮权限
此只为页面级隐藏
此场景为默认的 菜单-->按钮 权限操作,通过路径的menuId控制
调用方式:
<page:permission />
最终的结果如下,假设用户拥有添加和删除两种权限:
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-danger btn-del disabled" onclick="$.operate.removeAll()">
<i class="fa fa-remove"></i> 删除
</a>
# 不规则页面
此只为页面级隐藏
此场景为一级弹窗,或者二级弹窗权限,通过按键标识的permission控制.
调用方式:
// 其中传递参数为按钮标识
<a class="btn btn-success" onclick="$.operate.add()" page:hasPermission="sys:user:save">
<i class="fa fa-plus"></i> 新增
</a>
# 强控制
此只为方法级拦截
以上两种权限控制并不能拦截后台权限,只在页面做了按钮隐藏,并不能到控制层 进行控制,强控制可以做到方法级拦截
在方法上添加注解:
/**
* 保存按钮, 其中sys:user:save为按钮标识
*/
@OperationPermissions("sys:user:save")
@ResponseBody
@PostMapping("buttonSave")
public ResponseBean buttonSave(@Validated ManagerResourceBean bean) {
// 此处省略处理逻辑
}
# 其它
此处仿shiro权限配置,标识也是按 shiro 的标识控制,具体规则如下:
- 待补