message: Use correct field for authentication of e-mail server
diff: @@ -56,7 +56,7 @@ export const RealmSettingsEmailTab = ({
  const authenticationEnabled = useWatch({
  control,
  - name: "smtpServer.authentication",
  + name: "smtpServer.auth",
  defaultValue: "",
  });
  @@ -78,25 +78,19 @@ export const RealmSettingsEmailTab = ({
  };
  const testConnection = async () => {
  - const serverSettings = { ...getValues()["smtpServer"] };
  -
  - // Code below uses defensive coding as the server configuration uses an ambiguous record type.
  - if (typeof serverSettings.port === "string") {
  - serverSettings.port = Number(serverSettings.port);
  - }
  + const toNumber = (value: string) => Number(value);
  + const toBoolean = (value: string) => value === true.toString();
  + const valueMapper = new Map<string, (value: string) => unknown>([
  + ["port", toNumber],
  + ["ssl", toBoolean],
  + ["starttls", toBoolean],
  + ["auth", toBoolean],
  + ]);
  - if (typeof serverSettings.ssl === "string") {
  - serverSettings.ssl = serverSettings.ssl === true.toString();
  - }
  -
  - if (typeof serverSettings.starttls === "string") {
  - serverSettings.starttls = serverSettings.starttls === true.toString();
  - }
  + const serverSettings = { ...getValues()["smtpServer"] };
  - // For some reason the API wants a duplicate field for the authentication status.
  - // Somebody thought this was a good idea, so here we are.
  - if (serverSettings.authentication === true.toString()) {
  - serverSettings.auth = true;
  + for (const [key, mapperFn] of valueMapper.entries()) {
  + serverSettings[key] = mapperFn(serverSettings[key]);
  }
  try {
  @@ -321,7 +315,7 @@ export const RealmSettingsEmailTab = ({
  fieldId="kc-authentication"
  >
  <Controller
  - name="smtpServer.authentication"
  + name="smtpServer.auth"
  control={control}
  defaultValue=""
  render={({ onChange, value }) => (
  