Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import { usePermissionError } from '@/composables/usePermissionError';
export function checkPermission(module: string, ability: string): boolean {
// Get the current page props to check abilities
const page = (window as any).$page;
if (!page?.props?.auth?.abilities) {
return false;
}
const moduleAbilities = page.props.auth.abilities[module];
if (!moduleAbilities) {
return false;
}
return !!moduleAbilities[ability];
}
export function requirePermission(module: string, ability: string): boolean {
const hasPermission = checkPermission(module, ability);
if (!hasPermission) {
const { showError } = usePermissionError();
showError({
module,
ability,
message: `You don't have permission to ${ability} ${module}.`,
});
}
return hasPermission;
}
export function canAccess(module: string, ability: string): boolean {
return checkPermission(module, ability);
}
|