[리소스 권한 작업중]
This commit is contained in:
@@ -7,7 +7,7 @@ export const usePermissionsStore = defineStore(
|
||||
// 권한 데이터 상태
|
||||
const permissions = ref<UserPermissions>({
|
||||
resources: {
|
||||
menus: [],
|
||||
pageGroups: [],
|
||||
pages: [],
|
||||
components: [],
|
||||
},
|
||||
@@ -48,7 +48,7 @@ export const usePermissionsStore = defineStore(
|
||||
|
||||
permissions.value = {
|
||||
resources: {
|
||||
menus: [...MOCK_PERMISSIONS.resources.menus],
|
||||
pageGroups: [...MOCK_PERMISSIONS.resources.pageGroups],
|
||||
pages: [...MOCK_PERMISSIONS.resources.pages],
|
||||
components: [...MOCK_PERMISSIONS.resources.components],
|
||||
},
|
||||
@@ -70,8 +70,10 @@ export const usePermissionsStore = defineStore(
|
||||
.filter(Boolean) as string[];
|
||||
};
|
||||
|
||||
const getMenuCodes = (): string[] => {
|
||||
return permissions.value.resources.menus.map(menu => menu.code);
|
||||
const getPageGroupCodes = (): string[] => {
|
||||
return permissions.value.resources.pageGroups.map(
|
||||
pageGroup => pageGroup.code
|
||||
);
|
||||
};
|
||||
|
||||
const getComponentCodes = (): string[] => {
|
||||
@@ -85,8 +87,8 @@ export const usePermissionsStore = defineStore(
|
||||
return getPagePaths().includes(page);
|
||||
};
|
||||
|
||||
const hasMenuPermission = (menu: string): boolean => {
|
||||
return getMenuCodes().includes(menu);
|
||||
const hasPageGroupPermission = (pageGroup: string): boolean => {
|
||||
return getPageGroupCodes().includes(pageGroup);
|
||||
};
|
||||
|
||||
const hasComponentPermission = (component: string): boolean => {
|
||||
@@ -98,8 +100,8 @@ export const usePermissionsStore = defineStore(
|
||||
return pages.some(page => hasPagePermission(page));
|
||||
};
|
||||
|
||||
const hasAnyMenuPermission = (menus: string[]): boolean => {
|
||||
return menus.some(menu => hasMenuPermission(menu));
|
||||
const hasAnyPageGroupPermission = (pageGroups: string[]): boolean => {
|
||||
return pageGroups.some(pageGroup => hasPageGroupPermission(pageGroup));
|
||||
};
|
||||
|
||||
const hasAnyComponentPermission = (components: string[]): boolean => {
|
||||
@@ -134,14 +136,14 @@ export const usePermissionsStore = defineStore(
|
||||
|
||||
const findResourceByCode = (
|
||||
resources: {
|
||||
menus: Resource[];
|
||||
pageGroups: Resource[];
|
||||
pages: Resource[];
|
||||
components: Resource[];
|
||||
},
|
||||
code: string
|
||||
): Resource | undefined => {
|
||||
const allResources = [
|
||||
...resources.menus,
|
||||
...resources.pageGroups,
|
||||
...resources.pages,
|
||||
...resources.components,
|
||||
];
|
||||
@@ -149,7 +151,7 @@ export const usePermissionsStore = defineStore(
|
||||
if (resource.code === code) return resource;
|
||||
if (resource.children) {
|
||||
const found = findResourceByCode(
|
||||
{ menus: [], pages: [], components: resource.children },
|
||||
{ pageGroups: [], pages: [], components: resource.children },
|
||||
code
|
||||
);
|
||||
if (found) return found;
|
||||
@@ -160,14 +162,14 @@ export const usePermissionsStore = defineStore(
|
||||
|
||||
const findResourceByPath = (
|
||||
resources: {
|
||||
menus: Resource[];
|
||||
pageGroups: Resource[];
|
||||
pages: Resource[];
|
||||
components: Resource[];
|
||||
},
|
||||
path: string
|
||||
): Resource | undefined => {
|
||||
const allResources = [
|
||||
...resources.menus,
|
||||
...resources.pageGroups,
|
||||
...resources.pages,
|
||||
...resources.components,
|
||||
];
|
||||
@@ -175,7 +177,7 @@ export const usePermissionsStore = defineStore(
|
||||
if (resource.path === path) return resource;
|
||||
if (resource.children) {
|
||||
const found = findResourceByPath(
|
||||
{ menus: [], pages: [], components: resource.children },
|
||||
{ pageGroups: [], pages: [], components: resource.children },
|
||||
path
|
||||
);
|
||||
if (found) return found;
|
||||
@@ -188,7 +190,7 @@ export const usePermissionsStore = defineStore(
|
||||
const clearPermissions = () => {
|
||||
permissions.value = {
|
||||
resources: {
|
||||
menus: [],
|
||||
pageGroups: [],
|
||||
pages: [],
|
||||
components: [],
|
||||
},
|
||||
@@ -206,15 +208,15 @@ export const usePermissionsStore = defineStore(
|
||||
|
||||
// 기존 호환성 함수들
|
||||
hasPagePermission,
|
||||
hasMenuPermission,
|
||||
hasPageGroupPermission,
|
||||
hasComponentPermission,
|
||||
hasAnyPagePermission,
|
||||
hasAnyMenuPermission,
|
||||
hasAnyPageGroupPermission,
|
||||
hasAnyComponentPermission,
|
||||
|
||||
// 헬퍼 함수들
|
||||
getPagePaths,
|
||||
getMenuCodes,
|
||||
getPageGroupCodes,
|
||||
getComponentCodes,
|
||||
|
||||
// 새로운 계층 구조 권한 체크 함수들
|
||||
|
||||
Reference in New Issue
Block a user