mirror of
https://github.com/fallenbagel/jellyseerr.git
synced 2026-01-03 13:18:53 -05:00
fix: use less strict validation for external URLs (#1104)
* fix: use less strict validation for external URLs Default url validation from the Yup module doesn't allow URLs like "http://custom-host", while it is a correct value for an external URL. fix #1068 * fix: resolve GitHub CodeQL review
This commit is contained in:
@@ -130,7 +130,10 @@ const RadarrModal = ({ onClose, radarr, onSave }: RadarrModalProps) => {
|
|||||||
intl.formatMessage(messages.validationMinimumAvailabilityRequired)
|
intl.formatMessage(messages.validationMinimumAvailabilityRequired)
|
||||||
),
|
),
|
||||||
externalUrl: Yup.string()
|
externalUrl: Yup.string()
|
||||||
.url(intl.formatMessage(messages.validationApplicationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationApplicationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
||||||
|
|||||||
@@ -139,7 +139,10 @@ const SettingsJellyfin: React.FC<SettingsJellyfinProps> = ({
|
|||||||
),
|
),
|
||||||
jellyfinExternalUrl: Yup.string()
|
jellyfinExternalUrl: Yup.string()
|
||||||
.nullable()
|
.nullable()
|
||||||
.url(intl.formatMessage(messages.validationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationUrlTrailingSlash),
|
intl.formatMessage(messages.validationUrlTrailingSlash),
|
||||||
@@ -147,7 +150,10 @@ const SettingsJellyfin: React.FC<SettingsJellyfinProps> = ({
|
|||||||
),
|
),
|
||||||
jellyfinForgotPasswordUrl: Yup.string()
|
jellyfinForgotPasswordUrl: Yup.string()
|
||||||
.nullable()
|
.nullable()
|
||||||
.url(intl.formatMessage(messages.validationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationUrlTrailingSlash),
|
intl.formatMessage(messages.validationUrlTrailingSlash),
|
||||||
|
|||||||
@@ -87,7 +87,10 @@ const SettingsMain = () => {
|
|||||||
intl.formatMessage(messages.validationApplicationTitle)
|
intl.formatMessage(messages.validationApplicationTitle)
|
||||||
),
|
),
|
||||||
applicationUrl: Yup.string()
|
applicationUrl: Yup.string()
|
||||||
.url(intl.formatMessage(messages.validationApplicationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationApplicationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
||||||
|
|||||||
@@ -190,7 +190,10 @@ const SettingsPlex = ({ onComplete }: SettingsPlexProps) => {
|
|||||||
otherwise: Yup.string().nullable(),
|
otherwise: Yup.string().nullable(),
|
||||||
}),
|
}),
|
||||||
tautulliExternalUrl: Yup.string()
|
tautulliExternalUrl: Yup.string()
|
||||||
.url(intl.formatMessage(messages.validationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationUrlTrailingSlash),
|
intl.formatMessage(messages.validationUrlTrailingSlash),
|
||||||
|
|||||||
@@ -145,7 +145,10 @@ const SonarrModal = ({ onClose, sonarr, onSave }: SonarrModalProps) => {
|
|||||||
)
|
)
|
||||||
: Yup.number(),
|
: Yup.number(),
|
||||||
externalUrl: Yup.string()
|
externalUrl: Yup.string()
|
||||||
.url(intl.formatMessage(messages.validationApplicationUrl))
|
.matches(
|
||||||
|
/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}(\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&/=]*))?$/i,
|
||||||
|
intl.formatMessage(messages.validationApplicationUrl)
|
||||||
|
)
|
||||||
.test(
|
.test(
|
||||||
'no-trailing-slash',
|
'no-trailing-slash',
|
||||||
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
intl.formatMessage(messages.validationApplicationUrlTrailingSlash),
|
||||||
|
|||||||
Reference in New Issue
Block a user