This commit is contained in:
2026-08-11 11:41:52 +08:00
parent de0a90e853
commit 6ab7d52a95
6 changed files with 65 additions and 16 deletions
@@ -89,3 +89,15 @@ export const FRONTEND_TO_MERCHANT_PERMISSION_CODES: Readonly<Record<string, read
'company:permission:assign': ['merchant:role:grant'],
'finance:bill:view': ['merchant:finance:statement:list', 'merchant:finance:statement:view'],
}
export const FRONTEND_PERMISSIONS_REQUIRING_ALL_BACKEND_CODES = new Set<string>([
'finance:bill:view',
])
export function hasMappedMerchantPermission(frontendCode: string, grantedBackendCodes: ReadonlySet<string>) {
const backendCodes = FRONTEND_TO_MERCHANT_PERMISSION_CODES[frontendCode]
if (!backendCodes?.length) return grantedBackendCodes.has(frontendCode)
return FRONTEND_PERMISSIONS_REQUIRING_ALL_BACKEND_CODES.has(frontendCode)
? backendCodes.every((code) => grantedBackendCodes.has(code))
: backendCodes.some((code) => grantedBackendCodes.has(code))
}