32 lines
1.2 KiB
TypeScript
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)
|
|
}
|