import { useMutation } from '@apollo/client'; import LoadingButton from '@mui/lab/LoadingButton'; import Stack from '@mui/material/Stack'; import MuiTextField from '@mui/material/TextField'; import * as React from 'react'; import useEnqueueSnackbar from 'hooks/useEnqueueSnackbar'; import ControlledAutocomplete from 'components/ControlledAutocomplete'; import Form from 'components/Form'; import Switch from 'components/Switch'; import TextField from 'components/TextField'; import { UPSERT_SAML_AUTH_PROVIDER } from 'graphql/mutations/upsert-saml-auth-provider'; import useFormatMessage from 'hooks/useFormatMessage'; import useRoles from 'hooks/useRoles.ee'; const defaultValues = { active: false, name: '', certificate: '', signatureAlgorithm: 'sha1', issuer: '', entryPoint: '', firstnameAttributeName: '', surnameAttributeName: '', emailAttributeName: '', roleAttributeName: '', defaultRoleId: '', }; function generateRoleOptions(roles) { return roles?.map(({ name: label, id: value }) => ({ label, value })); } function SamlConfiguration({ provider, providerLoading }) { const formatMessage = useFormatMessage(); const { data, loading: isRolesLoading } = useRoles(); const roles = data?.data; const enqueueSnackbar = useEnqueueSnackbar(); const [upsertSamlAuthProvider, { loading }] = useMutation( UPSERT_SAML_AUTH_PROVIDER, ); const handleProviderUpdate = async (providerDataToUpdate) => { try { const { name, certificate, signatureAlgorithm, issuer, entryPoint, firstnameAttributeName, surnameAttributeName, emailAttributeName, roleAttributeName, active, defaultRoleId, } = providerDataToUpdate; await upsertSamlAuthProvider({ variables: { input: { name, certificate, signatureAlgorithm, issuer, entryPoint, firstnameAttributeName, surnameAttributeName, emailAttributeName, roleAttributeName, active, defaultRoleId, }, }, }); enqueueSnackbar(formatMessage('authenticationForm.successfullySaved'), { variant: 'success', SnackbarProps: { 'data-test': 'snackbar-save-saml-provider-success', }, }); } catch (error) { throw new Error('Failed while saving!'); } }; if (providerLoading) { return null; } return (
); } export default SamlConfiguration;