feat(sso): allow to use OIDC and SAML (#7246)
## What it does ### Backend - [x] Add a mutation to create OIDC and SAML configuration - [x] Add a mutation to delete an SSO config - [x] Add a feature flag to toggle SSO - [x] Add a mutation to activate/deactivate an SSO config - [x] Add a mutation to delete an SSO config - [x] Add strategy to use OIDC or SAML - [ ] Improve error management ### Frontend - [x] Add section "security" in settings - [x] Add page to list SSO configurations - [x] Add page and forms to create OIDC or SAML configuration - [x] Add field to "connect with SSO" in the signin/signup process - [x] Trigger auth when a user switch to a workspace with SSO enable - [x] Add an option on the security page to activate/deactivate the global invitation link - [ ] Add new Icons for SSO Identity Providers (okta, Auth0, Azure, Microsoft) --------- Co-authored-by: Félix Malfait <felix@twenty.com> Co-authored-by: Charles Bochet <charles@twenty.com>
This commit is contained in:
@ -0,0 +1,42 @@
|
||||
import styled from '@emotion/styled';
|
||||
import { IconComponent } from 'twenty-ui';
|
||||
import { SettingsRadioCard } from '@/settings/components/SettingsRadioCard';
|
||||
|
||||
const StyledRadioCardContainer = styled.div`
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: ${({ theme }) => theme.spacing(4)};
|
||||
`;
|
||||
|
||||
type SettingsRadioCardContainerProps = {
|
||||
onChange: (value: string) => void;
|
||||
value: string;
|
||||
options: Array<{
|
||||
value: string;
|
||||
title: string;
|
||||
description?: string;
|
||||
Icon?: IconComponent;
|
||||
}>;
|
||||
};
|
||||
|
||||
export const SettingsRadioCardContainer = ({
|
||||
options,
|
||||
value,
|
||||
onChange,
|
||||
}: SettingsRadioCardContainerProps) => {
|
||||
return (
|
||||
<StyledRadioCardContainer>
|
||||
{options.map((option) => (
|
||||
<SettingsRadioCard
|
||||
key={option.value}
|
||||
value={option.value}
|
||||
isSelected={value === option.value}
|
||||
handleClick={onChange}
|
||||
title={option.title}
|
||||
description={option.description}
|
||||
Icon={option.Icon}
|
||||
/>
|
||||
))}
|
||||
</StyledRadioCardContainer>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user