用户角色配置的问题

Blade 已结 1 147
xiaoliu
xiaoliu 剑圣 2024-08-20 16:35

一、该问题的重现步骤是什么?

1. 系统管理菜单中的用户管理模块,给testuser3赋予“用户”角色权限后,将testuser3“用户”权限去除后,点击“搜索”页面后提示报错。另外为什么“用户角色配置”只有“超级管理员”和“用户”这两种角色?

a3177a967a2b1bff6b909310653477cf.png

9a19042bb6e284f07d52bff6dd2b0615.png

image.png

二、你期待的结果是什么?实际看到的又是什么?

期待的结果:去掉“用户”角色配置后,不报错

实际看到的:去掉“用户”角色配置后,报错。


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

正在使用的产品:BladeX物联网平台

版本:1.0.0

操作系统:Windows11


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  •  admin
    admin (最佳回答者)
    2024-08-20 18:44

    角色在“角色管理”配置新增。

    报错的日志看看控制台具体是什么。

    作者追问:2024-08-20 18:44

    日志和控制台报错信息如下:

    2f39c3cc8797adbc23b57274d27dabc.png

    7d825478c49e0167b1c34c715053db9.png

    回答: 2024-08-20 18:44

    错误日志给全

    回答: 2024-08-20 18:44

    找到blade-server服务的org.springblade.modules.system.wrapper.UserWrapper,把entityVO方法改成如下试试

    @Override
    public UserVO entityVO(User user) {
        UserVO userVO = BeanUtil.copyProperties(user, UserVO.class);
        if (StringUtil.isNotBlank(user.getRoleId()) && !StringUtil.equals(user.getRoleId(), "-1")) {
           List<String> roleName = userService.getRoleName(user.getRoleId());
           userVO.setRoleName(Func.join(roleName));
        } else {
           userVO.setRoleId(StringPool.EMPTY);
           userVO.setRoleName("暂未分配");
        }
        if (StringUtil.isNotBlank(user.getDeptId()) && !StringUtil.equals(user.getDeptId(), "-1")) {
           List<String> deptName = userService.getDeptName(user.getDeptId());
           userVO.setDeptName(Func.join(deptName));
        } else {
           userVO.setDeptId(StringPool.EMPTY);
           userVO.setDeptName("暂未分配");
        }
        userVO.setSexName(dictService.getValue("sex", Func.toStr(user.getSex())));
        return userVO;
    }


    作者追问:2024-08-20 18:44

    自定义角色权限与系统内设置的超级管理、用户权限有什么区别,在给用户自定义角色权限后添加“用户”权限,则发现用户自定义角色权限被去除,只保留了“用户”权限?

    回答: 2024-08-20 18:44

    没区别,给用户设置哪个权限就变成哪个

    0 讨论(1)
提交回复