mirror of
https://github.com/dataease/dataease.git
synced 2026-06-16 03:11:44 +08:00
refactor(X-Pack): 对权限体系进行重构-12
This commit is contained in:
@@ -7,7 +7,8 @@ i18n_menu.workbranch=Workbench
|
||||
i18n_menu.visualized=Visualization
|
||||
i18n_menu.template=Template
|
||||
i18n_menu.application=Application
|
||||
i18n_menu.system=System Management
|
||||
i18n_menu.sys-setting=System Settings
|
||||
i18n_menu.system=Organization Management Center
|
||||
i18n_menu.template-market=Template Market
|
||||
i18n_menu.toolbox=Toolbox
|
||||
i18n_menu.template-setting=Template Management
|
||||
|
||||
@@ -6,7 +6,8 @@ i18n_menu.workbranch=\u5DE5\u4F5C\u53F0
|
||||
i18n_menu.visualized=\u53EF\u89C6\u5316
|
||||
i18n_menu.template=\u6A21\u7248
|
||||
i18n_menu.application=\u5E94\u7528
|
||||
i18n_menu.system=\u7CFB\u7EDF\u7BA1\u7406
|
||||
i18n_menu.sys-setting=\u7CFB\u7EDF\u8BBE\u7F6E
|
||||
i18n_menu.system=\u7EC4\u7EC7\u7BA1\u7406\u4E2D\u5FC3
|
||||
i18n_menu.template-market=\u6A21\u677F\u5E02\u573A
|
||||
i18n_menu.toolbox=\u5DE5\u5177\u7BB1
|
||||
i18n_menu.template-setting=\u6A21\u677F\u7BA1\u7406
|
||||
|
||||
@@ -6,7 +6,8 @@ i18n_menu.workbranch=\u5DE5\u4F5C\u81FA
|
||||
i18n_menu.visualized=\u53EF\u8996\u5316
|
||||
i18n_menu.template=\u6A21\u7248
|
||||
i18n_menu.application=\u61C9\u7528
|
||||
i18n_menu.system=\u7CFB\u7D71\u7BA1\u7406
|
||||
i18n_menu.sys-setting=\u7CFB\u7EDF\u8BBE\u7F6E
|
||||
i18n_menu.system=\u7D44\u7E54\u7BA1\u7406\u4E2D\u5FC3
|
||||
i18n_menu.template-market=\u6A21\u677F\u5E02\u5834
|
||||
i18n_menu.toolbox=\u5DE5\u5177\u7BB1
|
||||
i18n_menu.template-setting=\u6A21\u677F\u7BA1\u7406
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import request from '@/config/axios'
|
||||
|
||||
export const searchApi = data => request.post({ url: '/org/page/tree', data })
|
||||
export const searchApi = data => request.get({ url: '/org/page/tree', data })
|
||||
export const saveApi = data => request.post({ url: '/org/page/create', data })
|
||||
export const updateApi = data => request.post({ url: '/org/page/edit', data })
|
||||
export const resourceExistApi = oid => request.get({ url: '/org/resourceExist/' + oid })
|
||||
|
||||
@@ -14,6 +14,7 @@ import LangSelector from './LangSelector.vue'
|
||||
import router from '@/router'
|
||||
import { useCache } from '@/hooks/web/useCache'
|
||||
import { useAppearanceStoreWithOut } from '@/store/modules/appearance'
|
||||
import { usePermissionStore } from '@/store/modules/permission'
|
||||
import { useRouter } from 'vue-router_2'
|
||||
const appearanceStore = useAppearanceStoreWithOut()
|
||||
const navigateBg = computed(() => appearanceStore.getNavigateBg)
|
||||
@@ -28,6 +29,12 @@ interface LinkItem {
|
||||
link?: string
|
||||
method?: string
|
||||
}
|
||||
const permissionStore = usePermissionStore()
|
||||
const showSystem = ref(false)
|
||||
const initShowSystem = () => {
|
||||
showSystem.value = permissionStore.getRouters.some(route => route.path === '/sys-setting')
|
||||
}
|
||||
|
||||
const linkList = ref([{ id: 5, label: t('common.about'), method: 'toAbout' }] as LinkItem[])
|
||||
if (!appearanceStore.getShowAbout) {
|
||||
linkList.value.splice(0, 1)
|
||||
@@ -105,7 +112,8 @@ const toSystemCfg = () => {
|
||||
const kidPath = sysMenu.matched[0].children[0].path
|
||||
push(`${sysMenu.path}/${kidPath}`)
|
||||
}
|
||||
if (uid.value === '1') {
|
||||
initShowSystem()
|
||||
if (showSystem.value) {
|
||||
// linkLoaded([{ id: 4, link: '/sys-setting/parameter', label: t('commons.system_setting') }])
|
||||
linkLoaded([{ id: 4, label: t('commons.system_setting'), method: 'toSystemCfg' }])
|
||||
const desktop = wsCache.get('app.desktop')
|
||||
|
||||
@@ -19,5 +19,6 @@ public class BasePermissionRequest implements Serializable {
|
||||
@Schema(description = "资源类型", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private String flag;
|
||||
|
||||
private Long oid;
|
||||
private boolean system;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package io.dataease.api.permissions.auth.dto;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class PermissionOriginFlag implements Serializable {
|
||||
|
||||
@Schema(description = "是否根结点")
|
||||
private boolean root;
|
||||
@Schema(description = "角色类型编码: 0=普通用户,7=数据分析师,9=组织管理员")
|
||||
private Integer typeCode = 0;
|
||||
|
||||
@JsonSerialize(using= ToStringSerializer.class)
|
||||
@Schema(description = "顶层目录ID")
|
||||
private Long topRootDirId;
|
||||
}
|
||||
@@ -2,6 +2,7 @@ package io.dataease.api.permissions.auth.vo;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import io.dataease.api.permissions.auth.dto.PermissionOriginFlag;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
@@ -28,6 +29,16 @@ public class PermissionOrigin implements Serializable {
|
||||
private String name;
|
||||
@Schema(description = "来源类型: 0=user, 1=role, 2=org")
|
||||
private Integer type;
|
||||
@Schema(description = "关联权限项")
|
||||
|
||||
private List<PermissionItem> permissions;
|
||||
|
||||
private PermissionOriginFlag originFlag;
|
||||
|
||||
|
||||
public PermissionOrigin(Long id, String name, Integer type, List<PermissionItem> permissions) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
this.permissions = permissions;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,13 +13,7 @@ public class PermissionVO implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 7951267541124410580L;
|
||||
|
||||
@Schema(description = "是否根结点")
|
||||
private boolean root;
|
||||
@Schema(description = "是否只读")
|
||||
private boolean readonly;
|
||||
@Schema(description = "角色类型编码: 0=普通用户,5=数据分析师,9=组织管理员")
|
||||
private Integer typeCode = 0;
|
||||
@Schema(description = "直接权限项")
|
||||
|
||||
private List<PermissionItem> permissions;
|
||||
@Schema(description = "关联权限项")
|
||||
private List<PermissionOrigin> permissionOrigins;
|
||||
|
||||
@@ -4,11 +4,11 @@ import com.github.xiaoymin.knife4j.annotations.ApiSupport;
|
||||
import io.dataease.api.permissions.org.dto.OrgCreator;
|
||||
import io.dataease.api.permissions.org.dto.OrgEditor;
|
||||
import io.dataease.api.permissions.org.dto.OrgLazyRequest;
|
||||
import io.dataease.api.permissions.org.dto.OrgRequest;
|
||||
import io.dataease.api.permissions.org.vo.*;
|
||||
import io.dataease.api.permissions.org.vo.LazyTreeVO;
|
||||
import io.dataease.api.permissions.org.vo.OrgDetailVO;
|
||||
import io.dataease.api.permissions.org.vo.OrgPageVO;
|
||||
import io.dataease.auth.DeApiPath;
|
||||
import io.dataease.auth.DePermit;
|
||||
import io.dataease.model.KeywordRequest;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.enums.ParameterIn;
|
||||
@@ -28,9 +28,9 @@ import static io.dataease.constant.AuthResourceEnum.ORG;
|
||||
public interface OrgApi {
|
||||
|
||||
@Operation(summary = "查询组织树")
|
||||
@PostMapping("/page/tree")
|
||||
@GetMapping("/page/tree")
|
||||
@DePermit("m:read")
|
||||
List<OrgPageVO> pageTree(@RequestBody OrgRequest request);
|
||||
List<OrgPageVO> pageTree();
|
||||
|
||||
@Operation(summary = "懒加载组织树")
|
||||
@PostMapping("/page/lazyTree")
|
||||
|
||||
@@ -13,7 +13,6 @@ public class CacheConstant {
|
||||
}
|
||||
|
||||
public static class RoleCacheConstant {
|
||||
public static final String ROLE_MENU_PERS_CACHE = "de_v2_role_menu_pers";
|
||||
public static final String ROLE_BUSI_PERS_CACHE = "de_v2_role_busi_pers";
|
||||
public static final String ROLE_BUSI_PERS_INTERACTIVE_CACHE = "de_v2_role_busi_pers_interactive";
|
||||
}
|
||||
|
||||
@@ -11,7 +11,9 @@ import org.hibernate.annotations.Comment;
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "per_busi_resource")
|
||||
@Table(name = "per_busi_resource", indexes = {
|
||||
@Index(name = "idx_per_busi_resource_org_rt", columnList = "org_id, rt_id")
|
||||
})
|
||||
public class PerBusiResource {
|
||||
@Id
|
||||
@Comment("资源ID")
|
||||
|
||||
@@ -64,5 +64,5 @@ public class V3MenuModel implements Serializable {
|
||||
*/
|
||||
private Boolean auth;
|
||||
|
||||
private String module;
|
||||
private boolean plugin;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user