e301c7856b
Fixes https://github.com/twentyhq/core-team-issues/issues/427 --------- Co-authored-by: Marie Stoppa <marie.stoppa@essec.edu>
28 lines
924 B
TypeScript
28 lines
924 B
TypeScript
import { currentUserWorkspaceState } from '@/auth/states/currentUserWorkspaceState';
|
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { isDefined, PermissionsOnAllObjectRecords } from 'twenty-shared';
|
|
import { FeatureFlagKey } from '~/generated-metadata/graphql';
|
|
|
|
export const useHasObjectReadOnlyPermission = () => {
|
|
const currentUserWorkspace = useRecoilValue(currentUserWorkspaceState);
|
|
const isPermissionEnabled = useIsFeatureEnabled(
|
|
FeatureFlagKey.IsPermissionsEnabled,
|
|
);
|
|
|
|
if (!isPermissionEnabled) {
|
|
return false;
|
|
}
|
|
|
|
if (!isDefined(currentUserWorkspace?.objectRecordsPermissions)) {
|
|
return true;
|
|
}
|
|
|
|
return (
|
|
currentUserWorkspace?.objectRecordsPermissions.length === 1 &&
|
|
currentUserWorkspace?.objectRecordsPermissions.includes(
|
|
PermissionsOnAllObjectRecords.READ_ALL_OBJECT_RECORDS,
|
|
)
|
|
);
|
|
};
|