Add Import CSV and Export CSV Permissions (#13421)

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
Abdul Rahman
2025-07-25 11:37:38 +05:30
committed by GitHub
parent f411bd1b0e
commit 4b95de6775
28 changed files with 118 additions and 71 deletions
@@ -6,6 +6,7 @@ import { getActionConfig } from '@/action-menu/actions/utils/getActionConfig';
import { getActionViewType } from '@/action-menu/actions/utils/getActionViewType';
import { contextStoreCurrentViewTypeComponentState } from '@/context-store/states/contextStoreCurrentViewTypeComponentState';
import { contextStoreTargetedRecordsRuleComponentState } from '@/context-store/states/contextStoreTargetedRecordsRuleComponentState';
import { usePermissionFlagMap } from '@/settings/roles/hooks/usePermissionFlagMap';
import { useRecoilComponentValueV2 } from '@/ui/utilities/state/component-state/hooks/useRecoilComponentValueV2';
import { isDefined } from 'twenty-shared/utils';
import { useIcons } from 'twenty-ui/display';
@@ -48,6 +49,8 @@ export const useRegisteredActions = (
...recordAgnosticActionConfig,
};
const permissionMap = usePermissionFlagMap();
const actionsToRegister = isDefined(viewType)
? Object.values(actionsConfig).filter(
(action) =>
@@ -57,7 +60,15 @@ export const useRegisteredActions = (
: [];
const actions = actionsToRegister
.filter((action) => action.shouldBeRegistered(shouldBeRegisteredParams))
.filter((action) => {
if (
isDefined(action.requiredPermissionFlag) &&
!permissionMap[action.requiredPermissionFlag]
) {
return false;
}
return action.shouldBeRegistered(shouldBeRegisteredParams);
})
.sort((a, b) => a.position - b.position);
return actions;