0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-11 02:59:07 +08:00
discourse/lib/validators
Chris Alberti bee83c8e98
FIX: Support uppercase in User Profile Website URL (#42072)
Don't prepend http:// to the beginning of user profile website if it has
a scheme but the scheme contains uppercase letters.

A user reported an error when saving their profile which turned out to
be due to the website in their profile being set to a URL starting with
"Https://".

Previously, there was a case-sensitive regex checking if the URL started
with "http" and otherwise prepending "http://", so a URL starting with
"Https://..." would become "http://Https://" and eventually fail the URL
validator. This PR changes that logic to instead parse the URL, check if
it has a scheme, and only prepend "http://" in the case where there's no
scheme.

It also fixes a small bug in the URL validator handling cases where
`URI.parse()` and the fallback to `UrlHelper.encode()` both fail. I
moved the exception handler into that method, where previously we were
rescuing it at the end of `UserUpdater.update()` and failing to produce
a proper error message.

Meta ref: /t/408630
2026-07-28 09:27:03 -05:00
..
allow_user_locale_enabled_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
allowed_iframes_validator.rb DEV: Replace Ruby numbered parameters by it where applicable (#37810) 2026-02-13 13:59:07 +01:00
allowed_ip_address_validator.rb DEV: Remove unreachable IP address validation message (#24131) 2023-10-27 15:22:38 +08:00
alternative_reply_by_email_addresses_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
at_least_one_group_validator.rb DEV: Validate that passed in groups exist in AtLeastOneGroupValidator (#24890) 2023-12-14 10:00:53 +08:00
categories_topics_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
category_search_priority_weights_validator.rb FEATURE: Change very high/low search priority to rank at absolute ends. 2021-03-09 09:20:37 +08:00
censored_words_validator.rb DEV: Refactor watched words (#24163) 2023-11-01 16:41:10 +02:00
color_list_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
content_localization_crawler_param_validator.rb UX: Prevent incomplete crawler localization settings (#41297) 2026-07-01 12:13:22 +08:00
content_localization_locales_validator.rb FEATURE: Add a hidden setting to limit number of content localization locales (#33378) 2025-06-30 15:29:58 +08:00
csp_script_src_validator.rb DEV: Replace Ruby numbered parameters by it where applicable (#37810) 2026-02-13 13:59:07 +01:00
css_color_validator.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
css_color_with_blank_validator.rb UX: add welcome banner text color setting (#34657) 2025-09-24 15:19:40 +08:00
date_setting_validator.rb UX: Convert AI translation's max days ago setting to a specific date setting instead (#42082) 2026-07-28 18:27:34 +08:00
datetime_setting_validator.rb DEV: Add datetime type for site settings / object settings (#36849) 2025-12-30 10:52:30 -06:00
default_composer_category_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
delete_rejected_email_after_days_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
email_address_validator.rb FIX: Validate email length (#34786) 2025-09-11 18:58:07 +03:00
email_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
email_validator.rb DEV: Remove deprecated EmailValidator.email_regex (#24129) 2023-10-27 15:11:10 +08:00
emoji_picker_pinned_groups_validator.rb FEATURE: Add emoji_picker_pinned_groups for pinning groups in the picker (#41881) 2026-07-22 09:51:15 -07:00
enable_discourse_id_validator.rb FEATURE: log errors when enabling discourse id (#36110) 2025-11-25 11:20:32 +01:00
enable_local_logins_via_code_validator.rb FEATURE: Log in with a one-time email code (#40804) 2026-06-17 12:34:48 -07:00
enable_local_logins_via_email_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
enable_private_email_messages_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
enable_sso_validator.rb FIX: Reject DiscourseConnect SSO payloads when secret is blank (#40830) 2026-06-12 15:17:16 +03:00
external_system_avatars_validator.rb DEV: enable frozen string literal on all files 2019-05-13 09:31:32 +08:00
form_template_yaml_validator.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
google_oauth2_hd_groups_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
group_setting_validator.rb DEV: add type:group (#40981) 2026-06-17 15:07:37 +02:00
host_list_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
integer_setting_validator.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
ip_address_format_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
language_switcher_setting_validator.rb FEATURE: Also allow language switcher to be shown when users are logged in (#34578) 2025-08-27 23:01:07 +08:00
linkedin_oidc_credentials_validator.rb FEATURE: Allow users to sign in using LinkedIn OpenID Connect (#26281) 2024-04-19 18:47:30 +08:00
markdown_linkify_tlds_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
markdown_typographer_quotation_marks_validator.rb FEATURE: Site setting for typographic quotation marks 2019-07-11 23:19:28 +02:00
max_emojis_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
max_username_length_validator.rb FIX: Improve group name validation (#31315) 2025-02-19 19:33:46 +02:00
mediaconvert_output_subdirectory_validator.rb DEV: Update mediaconvert to use a subdirectory for output (#36049) 2025-11-20 14:03:14 -07:00
min_username_length_validator.rb FIX: Improve group name validation (#31315) 2025-02-19 19:33:46 +02:00
not_username_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
objects_setting_validator.rb FIX: Fix ObjectsSettingValidator error message handling (#38336) 2026-03-09 14:50:17 -03:00
password_validator.rb DEV: Migrate user passwords data to UserPassword table (#28746) 2024-10-10 09:23:06 +08:00
pop3_polling_enabled_setting_validator.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
post_validator.rb FIX: Cap the number of [quote] tags allowed per post (#40281) 2026-05-26 10:33:21 -03:00
quality_title_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
regex_presence_validator.rb DEV: enable frozen string literal on all files 2019-05-13 09:31:32 +08:00
regex_setting_validation.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
regex_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
regexp_list_validator.rb DEV: Enable Style/RedundantBegin rubocop rule (#40096) 2026-05-19 18:44:54 +02:00
reply_by_email_address_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
reply_by_email_enabled_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
search_ranking_weights_validator.rb DEV: Correct syntax_tree violations 2023-02-02 13:03:11 +00:00
search_tokenize_chinese_validator.rb FEATURE: Split up text segmentation for Chinese and Japanese. 2022-02-07 09:21:14 +08:00
search_tokenize_japanese_validator.rb FEATURE: Split up text segmentation for Chinese and Japanese. 2022-02-07 09:21:14 +08:00
selectable_avatars_mode_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
sso_overrides_email_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
string_setting_validator.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
stripped_length_validator.rb SECURITY: Respect max length in bot-human PMs 2025-06-09 12:04:11 +08:00
timezone_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
top_menu_validator.rb FIX: Prevent empty top menu configuration (#41710) 2026-07-14 20:36:02 -03:00
topic_setting_validator.rb FEATURE: Add new configurable moderation guide (#36287) 2025-12-01 10:30:32 +08:00
topic_title_length_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
unicode_username_allowlist_validator.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -06:00
unicode_username_validator.rb DEV: Deprecate external_system_avatars_enabled (#33436) 2025-07-04 16:02:04 +08:00
unique_among_validator.rb FIX: Scope duplicate topic title check to what the user can see (#41871) 2026-07-24 15:35:35 +02:00
upload_setting_validator.rb DEV: clean up splash SVG on upload, not when rendering (#37681) 2026-02-16 13:14:35 +10:00
upload_validator.rb DEV: Enable Style/RedundantParentheses rubocop rule (#40095) 2026-05-19 15:48:09 +02:00
url_validator.rb FIX: Support uppercase in User Profile Website URL (#42072) 2026-07-28 09:27:03 -05:00
user_full_name_validator.rb FEATURE: Add option to hide full name input at signup (#30471) 2024-12-30 22:26:20 +03:00
user_password_validator.rb DEV: Migrate user passwords data to UserPassword table (#28746) 2024-10-10 09:23:06 +08:00
username_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
video_conversion_enabled_validator.rb FEATURE: Add support for aws MediaConvert (#33092) 2025-07-23 11:58:33 -06:00
watched_words_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00