【8.3.4】完善角色绑定功能编码

master
stylefeng 2025-03-24 23:28:20 +08:00
parent feb6ef4d25
commit d569c80095
1 changed files with 15 additions and 4 deletions

View File

@ -3,8 +3,10 @@ package cn.stylefeng.roses.kernel.sys.modular.role.service.impl;
import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.sys.api.SysUserRoleServiceApi;
import cn.stylefeng.roses.kernel.sys.api.entity.SysMenuOptions;
import cn.stylefeng.roses.kernel.sys.api.enums.PermissionNodeTypeEnum;
import cn.stylefeng.roses.kernel.sys.api.pojo.role.request.RoleBindPermissionRequest;
import cn.stylefeng.roses.kernel.sys.modular.menu.service.SysMenuOptionsService;
import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleAssignOperateAction;
import cn.stylefeng.roses.kernel.sys.modular.role.action.RoleBindLimitAction;
import cn.stylefeng.roses.kernel.sys.modular.role.entity.SysRoleLimit;
@ -38,6 +40,9 @@ public class RoleBindOptionImpl implements RoleAssignOperateAction, RoleBindLimi
@Resource
private SysUserRoleServiceApi sysUserRoleServiceApi;
@Resource
private SysMenuOptionsService sysMenuOptionsService;
@Override
public PermissionNodeTypeEnum getNodeType() {
return PermissionNodeTypeEnum.OPTIONS;
@ -55,10 +60,16 @@ public class RoleBindOptionImpl implements RoleAssignOperateAction, RoleBindLimi
}
if (roleBindPermissionRequest.getChecked()) {
// 获取菜单功能的信息
SysMenuOptions sysMenuOptions = sysMenuOptionsService.getById(menuOptionId);
if (sysMenuOptions != null) {
SysRoleMenuOptions sysRoleMenuOptions = new SysRoleMenuOptions();
sysRoleMenuOptions.setRoleId(roleId);
sysRoleMenuOptions.setAppId(sysMenuOptions.getAppId());
sysRoleMenuOptions.setMenuId(sysMenuOptions.getMenuId());
sysRoleMenuOptions.setMenuOptionId(menuOptionId);
this.sysRoleMenuOptionsService.save(sysRoleMenuOptions);
}
} else {
// 当前正在进行的角色,不能禁用掉自己的权限