doxa-maps-cdn/app/composables/usePermissions.ts
2026-04-21 12:12:54 +01:00

20 lines
565 B
TypeScript

import type { Permission } from '~~/app/utils/permissions'
export const usePermissions = () => {
const { user } = useAuth()
const roles = computed<string[]>(() => user.value?.roles ?? [])
const permissions = computed<string[]>(() => user.value?.permissions ?? [])
const hasRole = (name: string) => roles.value.includes(name)
const hasPermission = (name: Permission | string) => permissions.value.includes(name)
const isAdmin = computed(() => hasRole('admin'))
return {
roles,
permissions,
hasRole,
hasPermission,
isAdmin
}
}