- Renamed `WorkflowActionAdapter` to `ToolExecutorWorkflowAction` - Renamed `settingPermission` table to `permissionFlag` and `setting` column to `flag` - Decoupled the send email logic from workflows to tools - Add new `Tools Permission` section in FE --------- Co-authored-by: Félix Malfait <felix.malfait@gmail.com> Co-authored-by: Félix Malfait <felix@twenty.com>
29 lines
905 B
TypeScript
29 lines
905 B
TypeScript
import { currentUserWorkspaceState } from '@/auth/states/currentUserWorkspaceState';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { PermissionFlagType } from '~/generated/graphql';
|
|
import { buildRecordFromKeysWithSameValue } from '~/utils/array/buildRecordFromKeysWithSameValue';
|
|
|
|
export const useSettingsPermissionMap = (): Record<
|
|
PermissionFlagType,
|
|
boolean
|
|
> => {
|
|
const currentUserWorkspace = useRecoilValue(currentUserWorkspaceState);
|
|
|
|
const currentUserWorkspaceSettingsPermissions =
|
|
currentUserWorkspace?.settingsPermissions;
|
|
|
|
const initialPermissions = buildRecordFromKeysWithSameValue(
|
|
Object.values(PermissionFlagType),
|
|
false,
|
|
);
|
|
|
|
if (!currentUserWorkspaceSettingsPermissions) {
|
|
return initialPermissions;
|
|
}
|
|
|
|
return currentUserWorkspaceSettingsPermissions.reduce((acc, permission) => {
|
|
acc[permission] = true;
|
|
return acc;
|
|
}, initialPermissions);
|
|
};
|