fix: update page ambulatory, inpatient + emergency
This commit is contained in:
No files matched your search
@@ -0,0 +1,41 @@
|
||||
import type { Permission } from "~/models/role"
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const { checkRole, hasCreateAccess, hasReadAccess, hasUpdateAccess, hasDeleteAccess } = useRBAC()
|
||||
|
||||
export function getRouteTitle() {
|
||||
return route.meta.title as string
|
||||
}
|
||||
|
||||
export function getParamsId() {
|
||||
const id = route.params.id
|
||||
return typeof id === 'string' ? parseInt(id) : 0
|
||||
}
|
||||
|
||||
export function checkPageAccess(roleAccess: Record<string, Permission[]>, type: 'create' | 'read' | 'update' | 'delete') {
|
||||
// Check if user has access to this page, need to use try - catch for proper handling
|
||||
const hasAccess = checkRole(roleAccess)
|
||||
if (!hasAccess) {
|
||||
navigateTo('/403')
|
||||
}
|
||||
|
||||
// Define permission-based computed properties
|
||||
const canCreate = hasCreateAccess(roleAccess)
|
||||
const canRead = hasReadAccess(roleAccess)
|
||||
const canUpdate = hasUpdateAccess(roleAccess)
|
||||
const canDelete = hasDeleteAccess(roleAccess)
|
||||
|
||||
switch (type) {
|
||||
case 'create':
|
||||
return canCreate
|
||||
case 'read':
|
||||
return canRead
|
||||
case 'update':
|
||||
return canUpdate
|
||||
case 'delete':
|
||||
return canDelete
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user