task-b complate

This commit is contained in:
phaichayon
2026-06-11 16:55:45 +07:00
parent 7a390cf0df
commit 67545d9295
135 changed files with 3295 additions and 6385 deletions

View File

@@ -18,15 +18,6 @@ export const PERMISSIONS = {
productsWrite: 'products:write',
organizationManage: 'organization:manage',
usersManage: 'users:manage',
masterDataManage: 'master_data:manage',
assetRead: 'asset:read',
assetCreate: 'asset:create',
assetUpdate: 'asset:update',
assetAssign: 'asset:assign',
assetTransfer: 'asset:transfer',
assetReturn: 'asset:return',
assetRepair: 'asset:repair',
assetAudit: 'asset:audit',
reportRead: 'report:read'
} as const;
@@ -48,45 +39,18 @@ function getMembershipBasePermissions(role: MembershipRole): Permission[] {
export function getBusinessRolePermissions(role: BusinessRole): Permission[] {
switch (role) {
case 'it_admin':
return [
PERMISSIONS.masterDataManage,
PERMISSIONS.assetRead,
PERMISSIONS.assetCreate,
PERMISSIONS.assetUpdate,
PERMISSIONS.assetAssign,
PERMISSIONS.assetTransfer,
PERMISSIONS.assetReturn,
PERMISSIONS.assetRepair,
PERMISSIONS.assetAudit,
PERMISSIONS.reportRead
];
return [PERMISSIONS.reportRead];
case 'helpdesk':
return [
PERMISSIONS.assetRead,
PERMISSIONS.assetAssign,
PERMISSIONS.assetTransfer,
PERMISSIONS.assetReturn
];
return [];
case 'infrastructure':
return [
PERMISSIONS.assetRead,
PERMISSIONS.assetCreate,
PERMISSIONS.assetUpdate,
PERMISSIONS.assetRepair,
PERMISSIONS.reportRead
];
return [PERMISSIONS.reportRead];
case 'application':
return [
PERMISSIONS.assetRead,
PERMISSIONS.assetCreate,
PERMISSIONS.assetUpdate,
PERMISSIONS.reportRead
];
return [PERMISSIONS.reportRead];
case 'auditor':
return [PERMISSIONS.assetRead, PERMISSIONS.assetAudit, PERMISSIONS.reportRead];
return [PERMISSIONS.reportRead];
case 'viewer':
default:
return [PERMISSIONS.assetRead];
return [];
}
}
@@ -98,7 +62,9 @@ export function getDefaultPermissions(
role: MembershipRole,
businessRole: BusinessRole = getDefaultBusinessRole(role)
): Permission[] {
return [...new Set([...getMembershipBasePermissions(role), ...getBusinessRolePermissions(businessRole)])];
return [
...new Set([...getMembershipBasePermissions(role), ...getBusinessRolePermissions(businessRole)])
];
}
export function isSystemRole(value: string): value is SystemRole {