[permissions] Adapt FE to non-readable fields (#13440)

Fixes https://github.com/twentyhq/core-team-issues/issues/1261 and
https://github.com/twentyhq/core-team-issues/issues/1153

In this PR we
- remove fields user do not have read access on from queries (findMany,
findDuplicates, returned fields from create or update etc.)
- remove fields user do not have read access on from views 

This is behind a feature flag
This commit is contained in:
Marie
2025-07-28 18:24:08 +02:00
committed by GitHub
parent 4131be2a68
commit 16ba72edab
52 changed files with 394 additions and 95 deletions
@@ -16,8 +16,10 @@ import { ObjectRecord } from '@/object-record/types/ObjectRecord';
import { generateFindManyRecordsQuery } from '@/object-record/utils/generateFindManyRecordsQuery';
import { ViewFilter } from '@/views/types/ViewFilter';
import { relationFilterValueSchemaObject } from '@/views/view-filter-value/validation-schemas/jsonRelationFilterValueSchema';
import { useFeatureFlagsMap } from '@/workspace/hooks/useFeatureFlagsMap';
import { ViewFilterOperand } from 'twenty-shared/src/types/ViewFilterOperand';
import { isDefined } from 'twenty-shared/utils';
import { FeatureFlagKey } from '~/generated/graphql';
const filterQueryParamsSchema = z.object({
viewId: z.string().optional(),
@@ -69,6 +71,10 @@ export const useViewFromQueryParams = () => {
isDefined(filterQueryParams) &&
Object.entries(filterQueryParams).length > 0;
const featureFlags = useFeatureFlagsMap();
const isFieldsPermissionsEnabled =
featureFlags[FeatureFlagKey.IS_FIELDS_PERMISSIONS_ENABLED];
const getFiltersFromQueryParams = useRecoilCallback(
({ snapshot }) =>
async () => {
@@ -125,6 +131,7 @@ export const useViewFromQueryParams = () => {
objectMetadataItem: relationObjectMetadataItem,
objectMetadataItems,
objectPermissionsByObjectMetadataId,
isFieldsPermissionsEnabled,
}),
variables: {
filter: {
@@ -186,6 +193,7 @@ export const useViewFromQueryParams = () => {
objectMetadataItem.fields,
objectMetadataItems,
objectPermissionsByObjectMetadataId,
isFieldsPermissionsEnabled,
],
);