From ba446ba50890f8d69a37d9cf16eb4435d9412957 Mon Sep 17 00:00:00 2001 From: lijiahangmax Date: Fri, 24 Nov 2023 02:07:52 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BB=E6=9C=BA=E5=88=86=E7=BB=84?= =?UTF-8?q?=E6=8E=88=E6=9D=83.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../infra/enums/DataPermissionTypeEnum.java | 12 +- .../impl/DataPermissionServiceImpl.java | 11 +- .../src/components/view/tab-router/index.vue | 32 ++- .../src/components/view/tab-router/types.ts | 8 +- orion-ops-ui/src/hooks/permission.ts | 5 +- orion-ops-ui/src/types/const.ts | 2 + .../host-group/components/host-group-tree.vue | 116 +++++++---- .../components/host-group-view-role-grant.vue | 196 +++++++++++++++++- .../components/host-group-view-setting.vue | 18 +- .../host-group/components/host-group-view.vue | 50 ----- .../host-group/components/host-transfer.vue | 2 +- .../src/views/asset/host-group/index.vue | 50 ++++- .../views/user/role/components/role-table.vue | 9 +- .../src/views/user/role/types/const.ts | 3 - 14 files changed, 385 insertions(+), 129 deletions(-) create mode 100644 orion-ops-ui/src/types/const.ts delete mode 100644 orion-ops-ui/src/views/asset/host-group/components/host-group-view.vue diff --git a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataPermissionTypeEnum.java b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataPermissionTypeEnum.java index 4652ef1a..3cea4a06 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataPermissionTypeEnum.java +++ b/orion-ops-module-infra/orion-ops-module-infra-provider/src/main/java/com/orion/ops/module/infra/enums/DataPermissionTypeEnum.java @@ -1,5 +1,8 @@ package com.orion.ops.module.infra.enums; +import lombok.AllArgsConstructor; +import lombok.Getter; + /** * 数据权限类型 * @@ -7,15 +10,22 @@ package com.orion.ops.module.infra.enums; * @version 1.0.0 * @since 2023/11/8 18:57 */ +@Getter +@AllArgsConstructor public enum DataPermissionTypeEnum { /** * 主机分组 */ - HOST_GROUP, + HOST_GROUP(true), ; + /** + * 是否会分配给角色 + */ + private final boolean toRole; + public static DataPermissionTypeEnum of(String type) { if (type == null) { return null; diff --git a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataPermissionServiceImpl.java b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataPermissionServiceImpl.java index 3427b017..8e59c379 100644 --- a/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataPermissionServiceImpl.java +++ b/orion-ops-module-infra/orion-ops-module-infra-service/src/main/java/com/orion/ops/module/infra/service/impl/DataPermissionServiceImpl.java @@ -2,6 +2,7 @@ package com.orion.ops.module.infra.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.orion.lang.utils.collect.Lists; +import com.orion.ops.framework.common.utils.Valid; import com.orion.ops.framework.mybatis.core.query.Conditions; import com.orion.ops.framework.redis.core.utils.RedisLists; import com.orion.ops.framework.redis.core.utils.RedisUtils; @@ -11,6 +12,7 @@ import com.orion.ops.module.infra.dao.SystemUserRoleDAO; import com.orion.ops.module.infra.define.cache.DataPermissionCacheKeyDefine; import com.orion.ops.module.infra.entity.domain.DataPermissionDO; import com.orion.ops.module.infra.entity.request.data.DataPermissionUpdateRequest; +import com.orion.ops.module.infra.enums.DataPermissionTypeEnum; import com.orion.ops.module.infra.service.DataPermissionService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -131,6 +133,7 @@ public class DataPermissionServiceImpl implements DataPermissionService { @Override public List getUserAuthorizedRelIdList(String type, Long userId) { + DataPermissionTypeEnum dataType = Valid.valid(DataPermissionTypeEnum::of, type); String cacheKey = DataPermissionCacheKeyDefine.DATA_PERMISSION_USER.format(type, userId); // 获取缓存 List list = RedisLists.range(cacheKey, Long::valueOf); @@ -139,9 +142,11 @@ public class DataPermissionServiceImpl implements DataPermissionService { .eq(DataPermissionDO::getType, type) .eq(DataPermissionDO::getUserId, userId); // 查询用户角色 - List roleIdList = systemUserRoleDAO.selectRoleIdByUserId(userId); - if (!roleIdList.isEmpty()) { - wrapper.or().in(DataPermissionDO::getRoleId, roleIdList); + if (dataType.isToRole()) { + List roleIdList = systemUserRoleDAO.selectRoleIdByUserId(userId); + if (!roleIdList.isEmpty()) { + wrapper.or().in(DataPermissionDO::getRoleId, roleIdList); + } } // 查询数据库 list = dataPermissionDAO.of() diff --git a/orion-ops-ui/src/components/view/tab-router/index.vue b/orion-ops-ui/src/components/view/tab-router/index.vue index 83dbdfbf..918c37a6 100644 --- a/orion-ops-ui/src/components/view/tab-router/index.vue +++ b/orion-ops-ui/src/components/view/tab-router/index.vue @@ -1,11 +1,11 @@