22 lines
566 B
TypeScript
22 lines
566 B
TypeScript
import { type ObjectPermissions } from 'twenty-shared/types';
|
|
import { isDefined } from 'twenty-shared/utils';
|
|
|
|
export const checkFieldPermissions = (
|
|
fieldMetadataIds: string[],
|
|
objectPermissions: ObjectPermissions,
|
|
): boolean => {
|
|
const { restrictedFields } = objectPermissions;
|
|
|
|
const hasInaccessibleField = fieldMetadataIds.some((fieldId) => {
|
|
const fieldPermission = restrictedFields[fieldId];
|
|
|
|
if (!isDefined(fieldPermission)) {
|
|
return false;
|
|
}
|
|
|
|
return fieldPermission.canRead === false;
|
|
});
|
|
|
|
return !hasInaccessibleField;
|
|
};
|