This PR addresses issue #11321 by moving the "Support" section from the General tab to the Security tab. --------- Co-authored-by: Félix Malfait <felix@twenty.com>
101 lines
3.5 KiB
TypeScript
101 lines
3.5 KiB
TypeScript
import styled from '@emotion/styled';
|
|
import { Trans, useLingui } from '@lingui/react/macro';
|
|
import { H2Title, IconLock, Section, Tag } from 'twenty-ui';
|
|
|
|
import { isMultiWorkspaceEnabledState } from '@/client-config/states/isMultiWorkspaceEnabledState';
|
|
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
|
import { SettingsSSOIdentitiesProvidersListCard } from '@/settings/security/components/SSO/SettingsSSOIdentitiesProvidersListCard';
|
|
import { SettingsSecurityAuthProvidersOptionsList } from '@/settings/security/components/SettingsSecurityAuthProvidersOptionsList';
|
|
import { SettingsApprovedAccessDomainsListCard } from '@/settings/security/components/approvedAccessDomains/SettingsApprovedAccessDomainsListCard';
|
|
import { ToggleImpersonate } from '@/settings/workspace/components/ToggleImpersonate';
|
|
import { SettingsPath } from '@/types/SettingsPath';
|
|
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
|
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
|
import { useRecoilValue } from 'recoil';
|
|
import { FeatureFlagKey } from '~/generated/graphql';
|
|
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
|
|
|
const StyledContainer = styled.div`
|
|
width: 100%;
|
|
`;
|
|
|
|
const StyledMainContent = styled.div`
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: ${({ theme }) => theme.spacing(10)};
|
|
min-height: 200px;
|
|
`;
|
|
|
|
const StyledSection = styled(Section)`
|
|
flex-shrink: 0;
|
|
`;
|
|
|
|
export const SettingsSecurity = () => {
|
|
const { t } = useLingui();
|
|
|
|
const isMultiWorkspaceEnabled = useRecoilValue(isMultiWorkspaceEnabledState);
|
|
const IsApprovedAccessDomainsEnabled = useIsFeatureEnabled(
|
|
FeatureFlagKey.IsApprovedAccessDomainsEnabled,
|
|
);
|
|
|
|
return (
|
|
<SubMenuTopBarContainer
|
|
title={t`Security`}
|
|
links={[
|
|
{
|
|
children: <Trans>Workspace</Trans>,
|
|
href: getSettingsPath(SettingsPath.Workspace),
|
|
},
|
|
{ children: <Trans>Security</Trans> },
|
|
]}
|
|
>
|
|
<SettingsPageContainer>
|
|
<StyledMainContent>
|
|
<StyledSection>
|
|
<H2Title
|
|
title={t`SSO`}
|
|
description={t`Configure an SSO connection`}
|
|
adornment={
|
|
<Tag
|
|
text={t`Enterprise`}
|
|
color={'transparent'}
|
|
Icon={IconLock}
|
|
variant={'border'}
|
|
/>
|
|
}
|
|
/>
|
|
<SettingsSSOIdentitiesProvidersListCard />
|
|
</StyledSection>
|
|
{IsApprovedAccessDomainsEnabled && (
|
|
<StyledSection>
|
|
<H2Title
|
|
title={t`Approved Domains`}
|
|
description={t`Anyone with an email address at these domains is allowed to sign up for this workspace.`}
|
|
/>
|
|
<SettingsApprovedAccessDomainsListCard />
|
|
</StyledSection>
|
|
)}
|
|
<Section>
|
|
<StyledContainer>
|
|
<H2Title
|
|
title={t`Authentication`}
|
|
description={t`Customize your workspace security`}
|
|
/>
|
|
<SettingsSecurityAuthProvidersOptionsList />
|
|
</StyledContainer>
|
|
</Section>
|
|
{isMultiWorkspaceEnabled && (
|
|
<Section>
|
|
<H2Title
|
|
title={t`Support`}
|
|
description={t`Manage support access settings`}
|
|
/>
|
|
<ToggleImpersonate />
|
|
</Section>
|
|
)}
|
|
</StyledMainContent>
|
|
</SettingsPageContainer>
|
|
</SubMenuTopBarContainer>
|
|
);
|
|
};
|