- 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>
33 lines
998 B
TypeScript
33 lines
998 B
TypeScript
import { currentUserWorkspaceState } from '@/auth/states/currentUserWorkspaceState';
|
|
import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { WorkspaceActivationStatus } from 'twenty-shared/workspace';
|
|
import { PermissionFlagType } from '~/generated/graphql';
|
|
|
|
export const useHasSettingsPermission = (
|
|
permissionFlag?: PermissionFlagType,
|
|
) => {
|
|
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
|
const currentUserWorkspace = useRecoilValue(currentUserWorkspaceState);
|
|
|
|
if (!permissionFlag) {
|
|
return true;
|
|
}
|
|
|
|
if (
|
|
permissionFlag === PermissionFlagType.WORKSPACE &&
|
|
currentWorkspace?.activationStatus ===
|
|
WorkspaceActivationStatus.PENDING_CREATION
|
|
) {
|
|
return true;
|
|
}
|
|
|
|
const currentUserWorkspaceSetting = currentUserWorkspace?.settingsPermissions;
|
|
|
|
if (!currentUserWorkspaceSetting) {
|
|
return false;
|
|
}
|
|
|
|
return currentUserWorkspaceSetting.includes(permissionFlag);
|
|
};
|