function MultiUser()

in frontend/src/old-pages/Configure/MultiUser.tsx [148:298]


function MultiUser() {
  const {t} = useTranslation()

  const generateSshKeys = useState(generateSshKeysPath)

  const onGenerateSshKeysChange: NonCancelableEventHandler<CheckboxProps.ChangeDetail> =
    React.useCallback(({detail}) => {
      setState(generateSshKeysPath, detail.checked)
    }, [])

  React.useEffect(() => {
    if (generateSshKeys === null) setState(generateSshKeysPath, true)
  }, [generateSshKeys])

  return (
    <Container
      header={
        <Header
          variant="h2"
          info={<InfoLink helpPanel={<MultiUserHelpPanel />} />}
        >
          {t('wizard.cluster.multiUser.title')}
        </Header>
      }
    >
      <SpaceBetween direction="vertical" size="s">
        <HelpTextInput
          name={t('wizard.cluster.multiUser.domainName.name')}
          path={dsPath}
          errorsPath={errorsPath}
          configKey={'DomainName'}
          description={t('wizard.cluster.multiUser.domainName.description')}
          placeholder={'dc=corp,dc=pcluster,dc=com'}
          help={t('wizard.cluster.multiUser.domainName.help')}
          onChange={({detail}) => {
            setState([...dsPath, 'DomainName'], detail.value)
          }}
        />
        <HelpTextInput
          name={t('wizard.cluster.multiUser.domainAddress.name')}
          path={dsPath}
          errorsPath={errorsPath}
          configKey={'DomainAddr'}
          description={t('wizard.cluster.multiUser.domainAddress.description')}
          placeholder={'ldaps://corp.pcluster.com'}
          help={t('wizard.cluster.multiUser.domainAddress.help')}
          onChange={({detail}) => {
            setState([...dsPath, 'DomainAddr'], detail.value)
          }}
        />
        <HelpTextInput
          name={t('wizard.cluster.multiUser.passwordSecretArn.name')}
          path={dsPath}
          errorsPath={errorsPath}
          configKey={'PasswordSecretArn'}
          description={t(
            'wizard.cluster.multiUser.passwordSecretArn.description',
          )}
          placeholder={
            'arn:aws:secretsmanager:region:000000000000:secret:secret_name'
          }
          help={t('wizard.cluster.multiUser.passwordSecretArn.help')}
          onChange={({detail}) => {
            setState([...dsPath, 'PasswordSecretArn'], detail.value)
          }}
        />
        <HelpTextInput
          name={t('wizard.cluster.multiUser.domainReadOnlyUser.name')}
          path={dsPath}
          errorsPath={errorsPath}
          configKey={'DomainReadOnlyUser'}
          description={t(
            'wizard.cluster.multiUser.domainReadOnlyUser.description',
          )}
          placeholder={
            'cn=ReadOnlyUser,ou=Users,ou=CORP,dc=corp,dc=pcluster,dc=com'
          }
          help={t('wizard.cluster.multiUser.domainReadOnlyUser.help')}
          onChange={({detail}) => {
            setState([...dsPath, 'DomainReadOnlyUser'], detail.value)
          }}
        />
        <ExpandableSection
          headerText={t('wizard.cluster.multiUser.advancedOptionsLabel')}
        >
          <SpaceBetween direction="vertical" size="s">
            <HelpTextInput
              name={t('wizard.cluster.multiUser.caCertificate.name')}
              path={dsPath}
              errorsPath={errorsPath}
              configKey={'LdapTlsCaCert'}
              description={t(
                'wizard.cluster.multiUser.caCertificate.description',
              )}
              placeholder={'/path/to/certificate.pem'}
              help={t('wizard.cluster.multiUser.caCertificate.help')}
              onChange={({detail}) => {
                setState([...dsPath, 'LdapTlsCaCert'], detail.value)
              }}
            />
            <HelpTextInput
              name={t('wizard.cluster.multiUser.requireCertificate.name')}
              path={dsPath}
              errorsPath={errorsPath}
              configKey={'LdapTlsReqCert'}
              description={t(
                'wizard.cluster.multiUser.requireCertificate.description',
              )}
              placeholder={'hard'}
              help={t('wizard.cluster.multiUser.requireCertificate.help')}
              onChange={({detail}) => {
                setState([...dsPath, 'LdapTlsReqCert'], detail.value)
              }}
            />
            <HelpTextInput
              name={t('wizard.cluster.multiUser.LDAPAccessFilter.name')}
              path={dsPath}
              errorsPath={errorsPath}
              configKey={'LdapAccessFilter'}
              description={t(
                'wizard.cluster.multiUser.LDAPAccessFilter.description',
              )}
              placeholder={
                'memberOf=cn=TeamOne,ou=Users,ou=CORP,dc=corp,dc=pcluster,dc=com'
              }
              help={t('wizard.cluster.multiUser.LDAPAccessFilter.help')}
              onChange={({detail}) => {
                setState([...dsPath, 'LdapAccessFilter'], detail.value)
              }}
            />
            <CheckboxWithHelpPanel
              checked={generateSshKeys}
              onChange={onGenerateSshKeysChange}
              helpPanel={
                <TitleDescriptionHelpPanel
                  title={t('wizard.cluster.multiUser.generateSSHKeys.name')}
                  description={
                    <Trans i18nKey="wizard.cluster.multiUser.generateSSHKeys.help" />
                  }
                />
              }
            >
              {t('wizard.cluster.multiUser.generateSSHKeys.name')}
            </CheckboxWithHelpPanel>
            <AdditionalSssdOptions />
          </SpaceBetween>
        </ExpandableSection>
      </SpaceBetween>
    </Container>
  )
}