Fix RLS entitlement check + fix role page with RLS on object without object-permission not being displayed (#17326)
This commit is contained in:
+14
@@ -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,
|
||||
};
|
||||
|
||||
+2
@@ -17,10 +17,12 @@ export const useFilterObjectMetadataItemsWithPermissionOverride = ({
|
||||
const {
|
||||
objectHasOverrideOnObjectPermissions,
|
||||
objectHasNoOverrideButFieldPermissionsShouldBeTakenIntoAccount,
|
||||
objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount,
|
||||
} = getObjectPermissionDerivedStates(objectMetadataItem.id);
|
||||
|
||||
const hasOverride =
|
||||
objectHasNoOverrideButFieldPermissionsShouldBeTakenIntoAccount ||
|
||||
objectHasNoOverrideButRowLevelPermissionShouldBeTakenIntoAccount ||
|
||||
objectHasOverrideOnObjectPermissions;
|
||||
|
||||
return hasOverride;
|
||||
|
||||
+2
-4
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user