Files
template-nuxtsim/composables/useAccess.ts

50 lines
1.5 KiB
TypeScript

import { useRoute } from "vue-router";
import { useSidebarAccess } from "~/composables/sidebarMenu/useSidebarAkses";
import { useHakAksesStore } from "@/stores/sidebarMenuAkses/useMenuAksesStore";
import type { PageAccess } from "~/types/menuAkses/access";
export const useAccess = (pageRoute: string , userRole: string) => {
//const route = useRoute();
const getRole = "admin";
//const meta = route.path; //halaman yang sedang diakses
const meta = pageRoute
// const getPermissions = ['view'] // belum ambil data
const aksesMenu = useHakAksesStore();
//untuk merge akses menu dan akses ke store
const getMenuStore = useSidebarAccess(getRole);
//console.log("masuk akses", getMenuStore);
const getPagesUser = aksesMenu.pageAccess;
const getMergedPages = aksesMenu.mergedSidebar;
//const result = useSidebarAccess(getRole);
console.log("route dari useAccess", meta);
//console.log("mergerpage", getMergedPages);meta masih salah
//mencari permision per page
const cariPage: PageAccess[] = getPagesUser;
let getPermisionPage = null;
//console.log('cariPage', cariPage);
if (cariPage.length > 0) {
const found = cariPage.find((p) => p.path === meta);
//console.log("permisionPage", found);
if (found?.permissions) {
getPermisionPage = found.permissions;
}
}
//set permission ke pinia
aksesMenu.setPermissionPage(getPermisionPage);
return {
getRole, // role
getPagesUser, // akses menu per role
getMergedPages, // hasil merge akses menu
getPermisionPage, // permission per page
};
};