diff --git a/core/core-backend/src/main/java/io/dataease/dataset/dao/ext/mapper/DataSetAssistantMapper.java b/core/core-backend/src/main/java/io/dataease/dataset/dao/ext/mapper/DataSetAssistantMapper.java index 5f8dfe9d13..77b375581e 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/dao/ext/mapper/DataSetAssistantMapper.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/dao/ext/mapper/DataSetAssistantMapper.java @@ -132,7 +132,11 @@ public interface DataSetAssistantMapper { """) - List> queryEnterprise(@Param("oid") Long oid, @Param("uid") Long uid, @Param("orgAdmin") Boolean orgAdmin, @Param("ew") QueryWrapper queryWrapper); + List> queryEnterprise(@Param("oid") Long oid, @Param("uid") Long uid, @Param("orgAdmin") boolean orgAdmin, @Param("ew") QueryWrapper queryWrapper); + @Select("select pr.id, pr.readonly, pr.pid from per_user_role pur left join per_role pr on pur.rid = pr.id where pur.uid = #{uid} and pur.oid = #{oid} ") + List> roleInfoByUid(@Param("uid") Long uid, @Param("oid") Long oid); } diff --git a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLBotManage.java b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLBotManage.java index 5fcdd10dee..4577681cb6 100644 --- a/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLBotManage.java +++ b/core/core-backend/src/main/java/io/dataease/dataset/manage/DatasetSQLBotManage.java @@ -11,9 +11,6 @@ import io.dataease.api.dataset.vo.SQLBotAssistantField; import io.dataease.api.permissions.dataset.api.ColumnPermissionsApi; import io.dataease.api.permissions.dataset.dto.DataSetColumnPermissionsDTO; import io.dataease.api.permissions.dataset.dto.DataSetRowPermissionsTreeDTO; -import io.dataease.api.permissions.role.api.RoleApi; -import io.dataease.api.permissions.role.dto.RoleRequest; -import io.dataease.api.permissions.role.vo.RoleVO; import io.dataease.auth.bo.TokenUserBO; import io.dataease.commons.utils.EncryptUtils; import io.dataease.constant.ColumnPermissionConstants; @@ -170,12 +167,13 @@ public class DatasetSQLBotManage { } else { boolean isRootRole = isAdmin; if (!isAdmin) { - RoleRequest request = new RoleRequest(); - request.setUid(uid); - List roleVOS = Objects.requireNonNull(CommonBeanFactory.getBean(RoleApi.class)).selectedForUser(request); - isRootRole = roleVOS.stream().anyMatch(RoleVO::isRoot); - roleIds = roleVOS.stream().map(RoleVO::getId).toList(); - + List> roleMapList = dataSetAssistantMapper.roleInfoByUid(uid, oid); + if (CollectionUtils.isNotEmpty(roleMapList)) { + isRootRole = roleMapList.stream().anyMatch(item -> ObjectUtils.isNotEmpty(item.get("pid")) && (Integer.parseInt(item.get("pid").toString())) == 0); + roleIds = roleMapList.stream().map(item -> Long.parseLong(item.get("id").toString())).distinct().collect(Collectors.toList()); + } else { + roleIds = new ArrayList<>(); + } colPermissionMap = getColPermission(uid, roleIds); rowPermissionMap = getRowPermission(uid, roleIds); } @@ -282,7 +280,8 @@ public class DatasetSQLBotManage { }; TypeReference> typeToken = new TypeReference<>() { }; - private void rebuildTable(SQLBotAssistanTable table, List columnPermissionsDTOS, List rowPermissionsTree, Map dsRowData) { + + private void rebuildTable(SQLBotAssistanTable table, List columnPermissionsDTOS, List rowPermissionsTree, Map dsRowData) { Map rowData = table.getRowData(); CoreDatasetGroup coreDatasetGroup = BeanUtils.mapToBean(rowData, CoreDatasetGroup.class);