discourse/lib/validators
Alan Guo Xiang Tan e97ef7e9af
FEATURE: Allow site admin to mark a user's password as expired (#27314)
This commit adds the ability for site administrators to mark users'
passwords as expired. Note that this commit does not add any client side
interface to mark a user's password as expired.

The following changes are introduced in this commit:

1. Adds a `user_passwords` table and `UserPassword` model. While the
   `user_passwords` table is currently used to only store expired
   passwords, it will be used in the future to store a user's current
   password as well.

2. Adds a `UserPasswordExpirer.expire_user_password` method which can
   be used from the Rails console to mark a user's password as expired.

3. Updates `SessionsController#create` to check that the user's current
   password has not been marked as expired after confirming the
   password. If the password is determined to be expired based on the
   existence of a `UserPassword` record with the `password_expired_at`
   column set, we will not log the user in and will display a password
   expired notice. A forgot password email is automatically send out to
   the user as well.
2024-06-04 15:42:53 +08:00
..
allow_user_locale_enabled_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00: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
css_color_validator.rb DEV: Prefer \A and \z over ^ and $ in regexes (#19936) 2023-01-20 12:52:49 -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 DEV: pull email address validation out to a new EmailAddressValidator 2022-02-17 21:49:22 -05: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
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 FEATURE: Allow invite only and Discourse connect (#20961) 2023-04-04 19:52:11 +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: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +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: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00: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 UX: number site setting validation message (#24303) 2023-11-10 14:27:35 +11:00
ip_address_format_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00: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 DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
min_username_length_validator.rb DEV: Replace #pluck_first freedom patch with AR #pick in core (#19893) 2023-02-13 12:39:45 +08:00
not_username_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
password_validator.rb FEATURE: Allow site admin to mark a user's password as expired (#27314) 2024-06-04 15:42:53 +08:00
pop3_polling_enabled_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
post_validator.rb DEV: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +02: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: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00: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: Correctly pluralize error messages (#26469) 2024-04-04 15:02:09 +02:00
stripped_length_validator.rb PERF: bail out of expensive post validations 2024-05-07 18:56:16 +02:00
summarization_validator.rb FEATURE: Custom content summarization strategies. (#21813) 2023-06-13 14:21:46 -03:00
timezone_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00: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: enable frozen string literal on all files 2019-05-13 09:31:32 +08:00
unique_among_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
upload_validator.rb DEV: Update to lastest rubocop-discourse 2024-05-27 18:06:14 +02:00
url_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
user_full_name_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
username_setting_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00
watched_words_validator.rb DEV: Apply syntax_tree formatting to lib/* 2023-01-09 12:10:19 +00:00