Files
Web-Antrean/composables/usePermissions.ts

37 lines
1.0 KiB
TypeScript

// /composables/usePermissions.ts
export const usePermission = () => {
/**
* Extract group and role from path
* Example: "/Instalasi STIM/Devops/Superadmin"
* → { group: "STIM", role: "superadmin" }
*/
const parsePath = (path: string) => {
const parts = path.split("/").filter(Boolean);
const group = parts[1] || ""; // "STIM"
const role = parts.at(-1)?.toLowerCase() || ""; // "superadmin"
return { group, role };
};
/**
* Fetch permission from backend API
*/
const fetchPermission = async (path: string) => {
const { group, role } = parsePath(path);
const url = `http://10.10.150.131:8080/api/permission?roles=${role}&groups=${group}`;
const { data, error } = await useFetch(url, {
method: "GET",
});
if (error.value) {
console.error("❌ Gagal mengambil permission:", error.value);
throw error.value;
}
console.log("✅ Permission data:", data.value);
return data.value;
};
return { parsePath, fetchPermission };
};