Fix RLS entitlement check + fix role page with RLS on object without object-permission not being displayed (#17326)

This commit is contained in:
Weiko
2026-01-22 11:48:24 +01:00
committed by GitHub
parent f10515fc2d
commit 670ff1583e
7 changed files with 48 additions and 26 deletions
@@ -163,6 +163,19 @@ export const useGetObjectPermissionDerivedStates = ({
((isThereAnyFieldPermissionThatRevokeRead && canRestrictFieldRead) ||
(isThereAnyFieldPermissionThatRevokeUpdate && canRestrictFieldUpdate));
const rowLevelPermissionPredicatesForThisObject =
settingsDraftRole.rowLevelPermissionPredicates?.filter(
(predicateToFilter) =>
predicateToFilter.objectMetadataId === objectMetadataItemId,
) ?? [];
const isThereAnyRowLevelPermissionPredicateForThisObject =
rowLevelPermissionPredicatesForThisObject.length > 0;
const objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount =
objectHasNoOverrideOnObjectPermission &&
isThereAnyRowLevelPermissionPredicateForThisObject;
const objectHasOverrideOnObjectPermissions =
!objectHasNoOverrideOnObjectPermission;
@@ -182,6 +195,7 @@ export const useGetObjectPermissionDerivedStates = ({
objectHasNoOverrideOnObjectPermission,
thereAreFieldPermissionsButTheyShouldntBeTakenIntoAccountBecauseObjectPermissionsDontAllowIt,
objectHasNoOverrideButFieldPermissionsShouldBeTakenIntoAccount,
objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount,
objectPermissionHasOnlyNullPermissions,
objectHasOverrideOnObjectPermissions,
};
@@ -17,10 +17,12 @@ export const useFilterObjectMetadataItemsWithPermissionOverride = ({
const {
objectHasOverrideOnObjectPermissions,
objectHasNoOverrideButFieldPermissionsShouldBeTakenIntoAccount,
objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount,
} = getObjectPermissionDerivedStates(objectMetadataItem.id);
const hasOverride =
objectHasNoOverrideButFieldPermissionsShouldBeTakenIntoAccount ||
objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount ||
objectHasOverrideOnObjectPermissions;
return hasOverride;
@@ -34,8 +34,7 @@ export const SettingsRolePermissionsObjectLevelObjectForm = ({
const fromAgentId = searchParams.get('fromAgent');
const currentWorkspace = useRecoilValue(currentWorkspaceState);
const hasValidEnterpriseKey =
currentWorkspace?.hasValidEnterpriseKey === true;
const settingsDraftRole = useRecoilValue(
settingsDraftRoleFamilyState(roleId),
);
@@ -63,8 +62,7 @@ export const SettingsRolePermissionsObjectLevelObjectForm = ({
const isRowLevelPermissionPredicatesEnabled =
featureFlagsMap[
FeatureFlagKey.IS_ROW_LEVEL_PERMISSION_PREDICATES_ENABLED
] &&
(hasValidEnterpriseKey || isRLSBillingEntitlementEnabled);
] && isRLSBillingEntitlementEnabled;
const objectMetadataItem = objectMetadata.objectMetadataItem;