6.14軟工日報

笠大發表於2024-06-14

今日學習SpringSecurity的鑑權操作
程式碼如下

// 查詢使用者許可權
 
 
//        根據使用者id從使用者角色表中獲取角色id
        List<UserRoles> roleIds = userRolesService.list(new LambdaQueryWrapper<UserRoles>()
                .eq(UserRoles::getUserId,users.getId()));
        List<Integer> rolesList = roleIds.stream().map(UserRoles::getRoleId).toList();
 
        if (!(roleIds.size() >0)){
//            使用者沒有分配角色
            return myTUserDetail;
        }
        
        Set<String> listPermission = new HashSet<>();
 
        rolesList.forEach(roleId ->{
            // 根據角色id從角色許可權表中獲取許可權id
            List<RolePermissions> rolePermissions = rolePermissionsService.list(new LambdaQueryWrapper<RolePermissions>().
                    eq(RolePermissions::getRoleId, roleId));
            // 根據許可權id從許可權表中獲取許可權名稱
            rolePermissions.forEach(permissionsId->{
                Permissions permissions = permissionsService.getById(permissionsId.getPermissionId());
                listPermission.add(permissions.getName());
            });
        });
 
myTUserDetail.setPermissions( listPermission);

``

相關文章