Merge branch 'dev' into feat/move-kai-ui-to-sidebar-195

This commit is contained in:
Muhammad Hasyim Chaidir Ali
2025-12-04 11:53:23 +07:00
committed by GitHub
76 changed files with 2860 additions and 819 deletions

No files matched your search

+2
View File
@@ -344,6 +344,8 @@ export const uploadCode: Record<string, string> = {
kk: 'person-family-card',
paspor: 'person-passport',
'mcu-report': 'mcu-item-result',
'vclaim-sep': 'vclaim-sep',
'vclaim-sipp': 'vclaim-sipp',
} as const
export type UploadCodeKey = keyof typeof uploadCode
+56
View File
@@ -0,0 +1,56 @@
import type { Permission } from '~/models/role'
export function usePageChecker() {
const route = useRoute()
const { checkRole, hasCreateAccess, hasReadAccess, hasUpdateAccess, hasDeleteAccess } = useRBAC()
function getRouteTitle() {
return route.meta.title as string
}
function getParamsId() {
const id = route.params.id
return typeof id === 'string' ? parseInt(id) : 0
}
function getPageAccess(
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
}
}
return {
checkRole,
hasCreateAccess,
hasReadAccess,
hasUpdateAccess,
hasDeleteAccess,
getRouteTitle,
getParamsId,
getPageAccess
}
}