Taobin-Recipe-Manager/client-electron/src/lib/permissions.ts
2024-02-05 11:45:54 +07:00

32 lines
1.2 KiB
TypeScript

import { PermissionEnum } from '@/constants/permissions'
export function getPermissions(permissions: number): PermissionEnum[] {
const permissionsArray: PermissionEnum[] = []
if (permissions & PermissionEnum.THAI_PERMISSIONS) {
permissionsArray.push(PermissionEnum.THAI_PERMISSIONS)
}
if (permissions & PermissionEnum.MALAY_PERMISSIONS) {
permissionsArray.push(PermissionEnum.MALAY_PERMISSIONS)
}
if (permissions & PermissionEnum.AUS_PERMISSIONS) {
permissionsArray.push(PermissionEnum.AUS_PERMISSIONS)
}
if (permissions & PermissionEnum.ALPHA3_PERMISSIONS) {
permissionsArray.push(PermissionEnum.ALPHA3_PERMISSIONS)
}
if (permissions & PermissionEnum.VIEWER_PERMISSIONS) {
permissionsArray.push(PermissionEnum.VIEWER_PERMISSIONS)
}
if (permissions & PermissionEnum.EDITOR_PERMISSIONS) {
permissionsArray.push(PermissionEnum.EDITOR_PERMISSIONS)
}
return permissionsArray
}
export function hasPermission(permissions: number, permission: PermissionEnum): boolean {
return Boolean(permissions & permission)
}
export function permissionsToNumber(permissions: PermissionEnum[]): number {
return permissions.reduce((acc, permission) => acc | permission, 0)
}