Files
calendar/packages/platform/enums/permissions.ts
T
27e4210693 fix: atoms icons and build issues (#16248)
* fix: atoms icons and build issues

* fixup! fix: atoms icons and build issues

* fixup! fixup! fix: atoms icons and build issues

* fix import paths

* rename SchedulingType to something more specific

* fix: Invalid define value (must be an entity name or valid JSON syntax)

* chore: atoms build CI job

* chore: enable atoms build in CI

* fix build

* fixup! fix build

* fixup! fixup! fix build

* chore: replace calendar-days icon with calendar

* fixup! Merge branch 'fix-atoms-build-icons' of github.com:calcom/cal.com into fix-atoms-build-icons

* fixup! Merge branch 'fix-atoms-build-icons' of github.com:calcom/cal.com into fix-atoms-build-icons

* fixup! Merge branch 'fix-atoms-build-icons' of github.com:calcom/cal.com into fix-atoms-build-icons

---------

Co-authored-by: Lauris Skraucis <lauris.skraucis@gmail.com>
Co-authored-by: Ryukemeister <sahalrajiv6900@gmail.com>
Co-authored-by: supalarry <laurisskraucis@gmail.com>
2024-08-22 08:32:39 +00:00

74 lines
2.4 KiB
TypeScript

import {
BOOKING_READ,
BOOKING_WRITE,
EVENT_TYPE_READ,
EVENT_TYPE_WRITE,
PERMISSIONS,
SCHEDULE_READ,
SCHEDULE_WRITE,
APPS_READ,
APPS_WRITE,
PROFILE_READ,
PROFILE_WRITE,
} from "@calcom/platform-constants";
import type { PLATFORM_PERMISSION } from "@calcom/platform-types";
export const hasPermission = (userPermissions: number, permission: PLATFORM_PERMISSION): boolean => {
// use bitwise AND to check if user has the permission
return (userPermissions & permission) === permission;
};
export const hasPermissions = (userPermissions: number, permissions: PLATFORM_PERMISSION[]): boolean => {
// use bitwise AND to check if each required permission is present
return permissions.every((permission) => hasPermission(userPermissions, permission));
};
export const hasEventTypeReadPermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, EVENT_TYPE_READ);
};
export const hasEventTypeWritePermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, EVENT_TYPE_WRITE);
};
export const hasBookingReadPermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, BOOKING_READ);
};
export const hasBookingWritePermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, BOOKING_WRITE);
};
export const hasScheduleReadPermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, SCHEDULE_READ);
};
export const hasScheduleWritePermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, SCHEDULE_WRITE);
};
export const hasAppsReadPermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, APPS_READ);
};
export const hasAppsWritePermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, APPS_WRITE);
};
export const hasProfileReadPermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, PROFILE_READ);
};
export const hasProfileWritePermission = (userPermissions: number): boolean => {
return hasPermission(userPermissions, PROFILE_WRITE);
};
export const listPermissions = (userPermissions: number): PLATFORM_PERMISSION[] => {
return PERMISSIONS.reduce((acc, permission) => {
if (hasPermission(userPermissions, permission)) {
return [...acc, permission];
}
return acc;
}, [] as PLATFORM_PERMISSION[]);
};