fix: allow setting IPv6 as an IP address in hostname field (#1782)
Signed-off-by: Ludovic Ortega <ludovic.ortega@adminafk.fr>
This commit is contained in:
@@ -77,18 +77,13 @@ const NotificationsEmail = () => {
|
|||||||
otherwise: Yup.string().nullable(),
|
otherwise: Yup.string().nullable(),
|
||||||
})
|
})
|
||||||
.email(intl.formatMessage(messages.validationEmail)),
|
.email(intl.formatMessage(messages.validationEmail)),
|
||||||
smtpHost: Yup.string()
|
smtpHost: Yup.string().when('enabled', {
|
||||||
.when('enabled', {
|
is: true,
|
||||||
is: true,
|
then: Yup.string()
|
||||||
then: Yup.string()
|
.nullable()
|
||||||
.nullable()
|
.required(intl.formatMessage(messages.validationSmtpHostRequired)),
|
||||||
.required(intl.formatMessage(messages.validationSmtpHostRequired)),
|
otherwise: Yup.string().nullable(),
|
||||||
otherwise: Yup.string().nullable(),
|
}),
|
||||||
})
|
|
||||||
.matches(
|
|
||||||
/^(((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])):((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))@)?(([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])$/i,
|
|
||||||
intl.formatMessage(messages.validationSmtpHostRequired)
|
|
||||||
),
|
|
||||||
smtpPort: Yup.number().when('enabled', {
|
smtpPort: Yup.number().when('enabled', {
|
||||||
is: true,
|
is: true,
|
||||||
then: Yup.number()
|
then: Yup.number()
|
||||||
|
|||||||
@@ -96,12 +96,9 @@ const RadarrModal = ({ onClose, radarr, onSave }: RadarrModalProps) => {
|
|||||||
name: Yup.string().required(
|
name: Yup.string().required(
|
||||||
intl.formatMessage(messages.validationNameRequired)
|
intl.formatMessage(messages.validationNameRequired)
|
||||||
),
|
),
|
||||||
hostname: Yup.string()
|
hostname: Yup.string().required(
|
||||||
.required(intl.formatMessage(messages.validationHostnameRequired))
|
intl.formatMessage(messages.validationHostnameRequired)
|
||||||
.matches(
|
),
|
||||||
/^(((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])):((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))@)?(([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])$/i,
|
|
||||||
intl.formatMessage(messages.validationHostnameRequired)
|
|
||||||
),
|
|
||||||
port: Yup.number()
|
port: Yup.number()
|
||||||
.nullable()
|
.nullable()
|
||||||
.required(intl.formatMessage(messages.validationPortRequired)),
|
.required(intl.formatMessage(messages.validationPortRequired)),
|
||||||
|
|||||||
@@ -113,11 +113,7 @@ const SettingsJellyfin: React.FC<SettingsJellyfinProps> = ({
|
|||||||
const JellyfinSettingsSchema = Yup.object().shape({
|
const JellyfinSettingsSchema = Yup.object().shape({
|
||||||
hostname: Yup.string()
|
hostname: Yup.string()
|
||||||
.nullable()
|
.nullable()
|
||||||
.required(intl.formatMessage(messages.validationHostnameRequired))
|
.required(intl.formatMessage(messages.validationHostnameRequired)),
|
||||||
.matches(
|
|
||||||
/^(((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])):((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))@)?(([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])$/i,
|
|
||||||
intl.formatMessage(messages.validationHostnameRequired)
|
|
||||||
),
|
|
||||||
port: Yup.number().when(['hostname'], {
|
port: Yup.number().when(['hostname'], {
|
||||||
is: (value: unknown) => !!value,
|
is: (value: unknown) => !!value,
|
||||||
then: Yup.number()
|
then: Yup.number()
|
||||||
|
|||||||
@@ -136,11 +136,7 @@ const SettingsPlex = ({ onComplete }: SettingsPlexProps) => {
|
|||||||
const PlexSettingsSchema = Yup.object().shape({
|
const PlexSettingsSchema = Yup.object().shape({
|
||||||
hostname: Yup.string()
|
hostname: Yup.string()
|
||||||
.nullable()
|
.nullable()
|
||||||
.required(intl.formatMessage(messages.validationHostnameRequired))
|
.required(intl.formatMessage(messages.validationHostnameRequired)),
|
||||||
.matches(
|
|
||||||
/^(((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])):((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))@)?(([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])$/i,
|
|
||||||
intl.formatMessage(messages.validationHostnameRequired)
|
|
||||||
),
|
|
||||||
port: Yup.number()
|
port: Yup.number()
|
||||||
.nullable()
|
.nullable()
|
||||||
.required(intl.formatMessage(messages.validationPortRequired)),
|
.required(intl.formatMessage(messages.validationPortRequired)),
|
||||||
|
|||||||
@@ -103,12 +103,9 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => {
|
|||||||
name: Yup.string().required(
|
name: Yup.string().required(
|
||||||
intl.formatMessage(messages.validationNameRequired)
|
intl.formatMessage(messages.validationNameRequired)
|
||||||
),
|
),
|
||||||
hostname: Yup.string()
|
hostname: Yup.string().required(
|
||||||
.required(intl.formatMessage(messages.validationHostnameRequired))
|
intl.formatMessage(messages.validationHostnameRequired)
|
||||||
.matches(
|
),
|
||||||
/^(((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])):((([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))@)?(([a-z]|\d|_|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*)?([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])$/i,
|
|
||||||
intl.formatMessage(messages.validationHostnameRequired)
|
|
||||||
),
|
|
||||||
port: Yup.number()
|
port: Yup.number()
|
||||||
.nullable()
|
.nullable()
|
||||||
.required(intl.formatMessage(messages.validationPortRequired)),
|
.required(intl.formatMessage(messages.validationPortRequired)),
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ const messages = defineMessages('components.Login', {
|
|||||||
validationusernamerequired: 'Username required',
|
validationusernamerequired: 'Username required',
|
||||||
validationpasswordrequired: 'You must provide a password',
|
validationpasswordrequired: 'You must provide a password',
|
||||||
validationservertyperequired: 'Please select a server type',
|
validationservertyperequired: 'Please select a server type',
|
||||||
validationHostnameRequired: 'You must provide a valid hostname or IP address',
|
|
||||||
validationPortRequired: 'You must provide a valid port number',
|
validationPortRequired: 'You must provide a valid port number',
|
||||||
validationUrlTrailingSlash: 'URL must not end in a trailing slash',
|
validationUrlTrailingSlash: 'URL must not end in a trailing slash',
|
||||||
validationUrlBaseLeadingSlash: 'URL base must have a leading slash',
|
validationUrlBaseLeadingSlash: 'URL base must have a leading slash',
|
||||||
|
|||||||
@@ -269,7 +269,6 @@
|
|||||||
"components.Login.username": "Username",
|
"components.Login.username": "Username",
|
||||||
"components.Login.validationEmailFormat": "Invalid email",
|
"components.Login.validationEmailFormat": "Invalid email",
|
||||||
"components.Login.validationEmailRequired": "You must provide an email",
|
"components.Login.validationEmailRequired": "You must provide an email",
|
||||||
"components.Login.validationHostnameRequired": "You must provide a valid hostname or IP address",
|
|
||||||
"components.Login.validationPortRequired": "You must provide a valid port number",
|
"components.Login.validationPortRequired": "You must provide a valid port number",
|
||||||
"components.Login.validationUrlBaseLeadingSlash": "URL base must have a leading slash",
|
"components.Login.validationUrlBaseLeadingSlash": "URL base must have a leading slash",
|
||||||
"components.Login.validationUrlBaseTrailingSlash": "URL base must not end in a trailing slash",
|
"components.Login.validationUrlBaseTrailingSlash": "URL base must not end in a trailing slash",
|
||||||
|
|||||||
Reference in New Issue
Block a user