Files
twenty/packages/twenty-front/src/modules/auth/states/objectPermissionsFamilySelector.ts
T
Charles Bochet b51eb6471f Jotai 12 (#18160)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-23 12:01:37 +01:00

40 lines
1.2 KiB
TypeScript

import { currentUserWorkspaceState } from '@/auth/states/currentUserWorkspaceState';
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
import { createFamilySelectorV2 } from '@/ui/utilities/state/jotai/utils/createFamilySelectorV2';
export const objectPermissionsFamilySelector = createFamilySelectorV2<
{
canRead: boolean;
canUpdate: boolean;
},
{ objectNameSingular: string }
>({
key: 'objectPermissionsFamilySelector',
get:
({ objectNameSingular }) =>
({ get }) => {
const currentUserWorkspace = get(currentUserWorkspaceState);
const objectMetadataItems = get(objectMetadataItemsState);
const objectMetadataItem = objectMetadataItems.find(
(item) => item.nameSingular === objectNameSingular,
);
if (!objectMetadataItem) {
return {
canRead: false,
canUpdate: false,
};
}
const objectPermissions = currentUserWorkspace?.objectsPermissions?.find(
(permission) => permission.objectMetadataId === objectMetadataItem.id,
);
return {
canRead: objectPermissions?.canReadObjectRecords ?? false,
canUpdate: objectPermissions?.canUpdateObjectRecords ?? false,
};
},
});