discourse/lib
David Taylor 7826acc4a7
DEV: Replace site_setting_saved DiscourseEvent with site_setting_changed (#7401)
* DEV: Replace site_setting_saved DiscourseEvent with site_setting_changed

site_setting_saved is confusing for a few reasons:
- It is attached to the after_save of the ActiveRecord model. This is confusing because it only works 'properly' with the db_provider
- It passes the activerecord model as a parameter, which is confusing because you get access to the 'database' version of the setting, rather than the ruby setting. For example, booleans appear as 'y' or 'n' strings.
- When the event is called, the local process cache has not yet been updated. So if you call SiteSetting.setting_name inside the event handler, you will receive the old site setting value

I have deprecated that event, and added a new site_setting_changed event. It passes three parameters:
- Setting name (symbol)
- Old value (in ruby format)
- New value (in ruby format)

It is triggered after the setting has been persisted, and the local process cache has been updated.

This commit also includes a test case which describes the confusing behavior. This can be removed once site_setting_saved is removed.
2019-04-18 16:48:01 +01:00
..
active_record/connection_adapters DEV: Allow custom value when pausing sidekiq to aid in debugging. 2019-02-19 10:55:53 +08:00
auth FEATURE: Allow API requests to specify the DISCOURSE_VISIBLE header 2019-04-15 17:34:34 +01:00
autospec DEV: Remove trailing blank line 2019-04-02 15:49:23 +01:00
backup_restore FIX: Restoring backup shouldn't change disable_emails from "yes" to "non-staff" 2019-04-16 11:48:07 +02:00
common_passwords Make rubocop happy again. 2018-06-07 13:28:18 +08:00
content_security_policy FEATURE: Calculate CSP based on active themes (#6976) 2019-02-11 12:32:04 +00:00
demon FEATURE: introduce ultra_low priority queue 2019-01-17 14:53:19 +11:00
email FIX: Do not strip email lines having lists. 2019-04-16 11:39:35 +03:00
emoji FIX: correctly uses woman version of previously genderless emojis (#7285) 2019-03-29 10:53:29 +01:00
es6_module_transpiler DEV: Enable Style/SingleLineMethods and Style/Semicolon in Rubocop (#6717) 2018-12-04 11:48:13 +08:00
file_store Fix the build. 2019-03-13 17:39:07 +08:00
freedom_patches HTTPSify links (#7046) 2019-02-22 16:29:27 +01:00
generators REFACTOR: Move queue_jobs out of SiteSetting 2019-03-14 10:47:38 -04:00
guardian FIX: prevent anonymous users from changing their email/username/name (#7311) 2019-04-17 18:05:02 +10:00
highlight_js DEV: already defined constant 'HIGHLIGHTJS_DIR' 2019-01-21 10:12:23 +01:00
i18n REFACTOR: Use keyword argument for fallback_to_english flag 2019-02-19 15:28:47 +01:00
import Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
import_export Enable Lint/ShadowingOuterLocalVariable for Rubocop. 2018-09-04 10:16:42 +08:00
javascripts FEATURE: Add Armenian language 2019-03-28 14:24:14 +01:00
middleware FEATURE: Optional detailed performance logging for Sidekiq jobs (#7091) 2019-03-05 11:19:11 +00:00
migration DEV: Enable Style/SingleLineMethods and Style/Semicolon in Rubocop (#6717) 2018-12-04 11:48:13 +08:00
onebox Upgrade to FontAwesome 5 (take two) (#6673) 2018-11-26 16:49:57 -05:00
plugin DEV: Expose a way to extend a method that returns a list 2019-04-08 14:42:36 -03:00
pretty_text UX: Better emoji escaping for topic title (#7218) 2019-03-21 09:11:33 +01:00
rate_limiter Add specs for RateLimiter::LimitExceeded#description. 2018-06-19 07:48:03 +08:00
reviewable FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
scheduler FEATURE: log long running jobs in the defer queue 2018-10-12 17:03:47 +11:00
search FIX: Post blurb incorrect when search contains a phrase match. 2019-03-26 17:01:52 +08:00
seed_data FIX: Forcing permissions of seeded categories shouldn't fail 2019-03-26 10:39:07 +01:00
sidekiq Fix deadblock in 615a22a579. 2019-02-20 10:25:43 +08:00
site_settings FIX: Use saved_change_to_value? in site_setting_saved event 2019-04-17 10:07:00 -04:00
stylesheet FEATURE: Multiple SCSS file support for themes (#7351) 2019-04-12 11:36:08 +01:00
svg_sprite DEV: Remove empty DiscourseEvent handler 2019-04-18 12:25:28 +01:00
tasks FIX: show available details when rescuing error 2019-04-15 14:09:52 +05:30
theme_store FEATURE: Multiple SCSS file support for themes (#7351) 2019-04-12 11:36:08 +01:00
validators FIX: Do not allow invite_only and enable_sso at the same time 2019-04-02 10:26:27 -04:00
wizard FIX: correctly retrieve 'login required' setting value on wizard (#7355) 2019-04-11 20:25:08 +05:30
admin_confirmation.rb SECURITY: Confirm new administrator accounts via email 2017-04-04 15:59:01 -04:00
admin_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
admin_user_index_query.rb PERF: N+1 queries admin users pages. 2019-03-15 15:09:44 +08:00
age_words.rb reused value of Time.now in a method 2015-12-01 21:06:37 +00:00
archetype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
auth.rb DEV: Introduce Auth::ManagedAuthenticator 2018-11-30 11:18:11 +00:00
avatar_lookup.rb UX: show full name on /latest page 2018-08-23 14:41:06 +05:30
badge_posts_view_manager.rb Extract badge_posts view management logic into a service object. 2018-09-03 09:51:35 +08:00
badge_queries.rb FIX: grant first quote at the date post was created 2019-04-03 16:41:52 +11:00
base62.rb remove constant warning in base62 file 2018-01-19 19:52:42 +01:00
browser_detection.rb UX: detect DiscourseHub user agent in recently used devices 2019-04-16 13:50:47 -04:00
cache.rb FIX: Don't use Redis#keys in production. 2018-12-25 15:12:59 +02:00
canonical_url.rb FIX: absolute canonical link on topic pages 2013-12-12 17:24:00 +01:00
category_badge.rb FIX: avoid using absolute positioning for box category style in emails (#6607) 2018-11-15 14:35:50 +01:00
comment_migration.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
composer_messages_finder.rb FEATURE: Improve avatar education link (#7240) 2019-03-22 02:20:48 -07:00
configurable_urls.rb Don't blow up if Redis switches to READONLY 2015-04-24 14:37:16 -04:00
content_buffer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
content_security_policy.rb FEATURE: Calculate CSP based on active themes (#6976) 2019-02-11 12:32:04 +00:00
cooked_post_processor.rb FEATURE: bump onebox version, add styling for new reddit image onebox 2019-04-04 11:24:30 +02:00
crawler_detection.rb FIX: cubot android devices were detected as crawlers 2018-06-21 10:56:46 +10:00
current_user.rb FIX: Do not check for suspicious login when impersonating. (#6534) 2018-11-12 15:34:12 +01:00
custom_renderer.rb Initial release of Discourse 2013-02-05 14:16:51 -05:00
custom_setting_providers.rb Plugins can register providers for global settings 2017-01-09 17:18:58 -05:00
db_helper.rb FIX: Handle BBCode in migrate_to_s3 task as well. 2019-03-22 16:47:06 +08:00
directory_helper.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_cookie_store.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_diff.rb FIX: don't add diff classes more than once 2018-04-16 15:41:45 +02:00
discourse_event.rb DEV: Replace site_setting_saved DiscourseEvent with site_setting_changed (#7401) 2019-04-18 16:48:01 +01:00
discourse_hub.rb DEV: Remove the use of stubs on Rails.logger in our test suite. 2018-10-10 09:34:50 +08:00
discourse_iife.rb Allow the loader to understand when files are moved 2016-11-15 11:41:16 -05:00
discourse_ip_info.rb FIX: Ensure TarReader is closed. 2019-04-10 13:37:04 +03:00
discourse_logstash_logger.rb FIX: Incorrect formatter used when logstash formatter is enabled. 2018-04-17 12:07:52 +08:00
discourse_plugin_registry.rb DEV: Yarn-manage moment and moment-timezone libraries 2019-02-12 13:57:52 -05:00
discourse_plugin.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_redis.rb Follow up to f6f2c38183. 2019-01-22 12:51:59 +08:00
discourse_tagging.rb FEATURE: ability to restrict some tags to a category while allowing all others 2019-04-04 16:40:15 -04:00
discourse_updates.rb DEV: Fix rubocop after update. 2019-01-02 05:47:29 +08:00
discourse.rb FEATURE: Create new helper method 'Discourse.stats' (#7388) 2019-04-17 12:45:04 +05:30
disk_space.rb FEATURE: Improve backup stats on admin dashboard 2018-12-17 11:35:11 +01:00
distributed_cache.rb REFACTOR: distributed_cache is moved to the message_bus gem 2018-10-15 15:01:45 -04:00
distributed_memoizer.rb DEV: Properly flush DistributedMemoizer in spec. 2019-02-21 15:17:37 +08:00
distributed_mutex.rb DEV: Prevent warning about already initialized constant 2019-02-28 21:57:20 +01:00
edit_rate_limiter.rb Add better error messages for rate limits. 2015-09-24 13:52:46 -04:00
email_backup_token.rb FEATURE: further restrict downloading of backups 2017-03-01 08:28:34 -07:00
email_cook.rb replace indentation with non-breaking spaces when cooking emails 2017-11-18 17:16:44 +01:00
email_updater.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
email.rb FEATURE: Include "via <site_name>" in email From header 2019-01-04 17:06:19 +01:00
encodings.rb Use rchardet instead of charlock_holmes gem 2018-08-01 10:41:20 +02:00
enum_site_setting.rb Enum site settings can have translatable names in dropdown. Add setting for how often users get digest emails by default: default_digest_email_frequency. 2013-08-23 17:36:25 -04:00
enum.rb Enums that are used in tables need to be stable 2016-01-08 20:43:11 +05:30
excerpt_parser.rb Revert "FIX: strip spoilers in notification excerpts" 2019-04-15 10:15:17 -04:00
feed_element_installer.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
feed_item_accessor.rb FEATURE: Replace SimpleRSS with Ruby RSS module (#5311) 2017-12-06 10:45:09 +11:00
file_helper.rb PERF: reduce workload when optimizing images 2019-01-09 12:28:18 +11:00
filter_best_posts.rb PERF: Remove Object#present? check introduced in e0d5d9670a. 2017-09-07 21:36:27 +08:00
final_destination.rb FIX: GET request didn't use headers 2019-03-08 21:36:49 +01:00
flag_query.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
flag_settings.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
gaps.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
global_path.rb FIX: Incorrect CDN URL for site setting uploads when s3 is enabled. 2019-01-04 07:52:13 +08:00
guardian.rb FIX: prevent anonymous users from changing their email/username/name (#7311) 2019-04-17 18:05:02 +10:00
has_errors.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
headless-ember.js JSHint headless-ember 2014-03-11 03:18:57 -04:00
hijack.rb DEV: avoid require_dependency for some libs 2018-12-31 10:53:30 +11:00
homepage_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
html_prettify.rb Update Rubocop to 0.60 2018-12-04 10:48:16 +01:00
html_to_markdown.rb FIX: skip <br> inside <p> if next character is \n 2019-04-14 14:44:54 +05:30
image_sizer.rb FIX: raise exception when getting dimensions of missing image 2018-12-03 10:19:49 -05:00
inline_oneboxer.rb FIX: Cache url data for failed inline oneboxes 2018-11-13 01:44:20 +05:30
introduction_updater.rb FEATURE: Locale support for seeded categories and topics (#7110) 2019-03-18 21:09:13 +01:00
ip_addr.rb Replace certain uses of 'gsub' with 'tr' or 'chomp' for a speed 2016-06-10 22:08:37 -05:00
js_locale_helper.rb DEV: Prevent warnings in specs 2019-04-16 11:41:27 +02:00
json_error.rb FEATURE: Support backup uploads/downloads directly to/from S3. 2018-10-15 09:43:31 +08:00
letter_avatar.rb FIX: don't generate an exception when trying to cleanup unexisting tmp letter avatars 2018-05-30 15:33:58 +02:00
markdown_linker.rb FIX: subfolder digest emails have incorrect URLs 2018-08-07 16:38:17 -04:00
mem_info.rb do not pull hotlinked images when max_image_size_kb == 0 2013-11-13 17:30:48 +01:00
message_bus_diags.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
method_profiler.rb FEATURE: Optional detailed performance logging for Sidekiq jobs (#7091) 2019-03-05 11:19:11 +00:00
mini_sql_multisite_connection.rb FEATURE: mini_sql upgrade 2019-02-25 16:02:32 +11:00
mobile_detection.rb FEATURE: add ability to clear previously set mobile_view with mobile_view=auto 2019-02-22 10:44:49 -08:00
new_post_manager.rb FEATURE: Display the reason for many reviewable items 2019-04-11 12:04:45 -04:00
new_post_result.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
notification_levels.rb Server side code for Watching First Post Only 2016-07-07 11:21:50 -04:00
oneboxer.rb FIX: Onebox discourse user not respecting enable names (#7245) 2019-03-25 12:50:14 +05:30
onpdiff.rb add onpdiff tests 2013-12-16 18:39:49 +01:00
pbkdf2.rb more prep work for jRuby 2018-02-26 10:25:58 +11:00
permalink_constraint.rb FIX: permalink normalization not applied at constraint 2015-07-22 13:40:45 +10:00
pinned_check.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
plain_text_to_markdown.rb FEATURE: convert plain text emails to markdown 2017-12-06 01:47:51 +01:00
plugin_gem.rb Override problematic .gemrc setting 2018-10-17 15:31:58 +11:00
post_action_creator.rb FIX: Take action should agree with all pending flags 2019-04-08 12:39:18 -04:00
post_action_destroyer.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
post_action_result.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
post_creator.rb Remove support for disable_jump_reply user setting (#7359) 2019-04-12 09:03:06 +10:00
post_destroyer.rb FIX: Disagree and Restore should not revert edits 2019-04-11 16:21:18 -04:00
post_jobs_enqueuer.rb FEATURE: Remove full quotes only from new posts. (#6862) 2019-01-17 13:24:32 +11:00
post_locker.rb FEATURE: Staff members can lock posts 2018-01-26 14:01:30 -05:00
post_merger.rb FIX: Revised post not updated correctly when merging posts. 2016-08-11 09:01:54 +08:00
post_revisor.rb FIX: Publish web hooks when topic archetype is converted. 2019-04-16 15:18:39 +08:00
pretty_text.rb DEV: Remove HTML parser from Tautologistics. (#7344) 2019-04-10 11:21:22 +02:00
primary_group_lookup.rb PERF: Remove N+1 query when generating posters summary. 2017-09-14 12:07:35 +08:00
promotion.rb FIX: Clarify User.group_locked_trust_level. 2018-11-07 10:27:44 +08:00
quote_comparer.rb FEATURE: Add quote-modified class if a quote has been modified 2018-03-13 13:41:06 -04:00
rate_limiter.rb correct return value 2018-04-25 08:44:07 +10:00
remap.rb FIX: Expire theme cache after remap 2019-03-28 22:31:58 +00:00
retrieve_title.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
route_format.rb FIX: RouteFormat is a better class name than RouteFormats 2017-12-21 15:30:32 -05:00
rtl.rb DEV: Move RTL into lib where it belongs 2017-07-03 15:26:57 -04:00
s3_helper.rb DEV: Remove SiteSetting.s3_force_path_style (#7210) 2019-03-20 14:58:20 +01:00
s3_inventory.rb FEATURE: Create new helper method 'Discourse.stats' (#7388) 2019-04-17 12:45:04 +05:30
score_calculator.rb PERF: we have no use for topic percent rank 2018-07-05 15:10:19 +10:00
screening_model.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
search.rb FIX: Avoid penalizing long documents too much in search. 2019-04-03 14:09:57 +08:00
secure_session.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
single_sign_on_provider.rb FIX: move sso provider into its own class so it doesn't interfere with sso client (#6767) 2018-12-19 10:22:10 +01:00
single_sign_on.rb DEV: allow nonce expiry time to be extended cleanly from a plugin 2019-03-19 17:33:38 +11:00
site_setting_extension.rb DEV: Replace site_setting_saved DiscourseEvent with site_setting_changed (#7401) 2019-04-18 16:48:01 +01:00
slug.rb FIX: strip emoji string from slug 2018-04-18 11:32:32 +05:30
socket_server.rb Improve error messaging in SocketServer. 2018-09-19 09:11:10 +08:00
source_url.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
spam_handler.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
sql_builder.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
staff_constraint.rb FIX: Don't update User#last_seen_at when PG is readonly take 2. 2019-01-21 13:49:08 +08:00
staff_message_format.rb More extensibility for custom silence/suspend messages 2018-01-19 11:35:19 -05:00
suggested_topics_builder.rb tweaks to related message list generation 2018-10-29 16:09:58 +11:00
system_message.rb FEATURE: Add site contact group. (#7152) 2019-03-13 11:34:47 +01:00
text_cleaner.rb FIX: strip invalid byte sequences 2019-02-26 10:09:51 +01:00
text_sentinel.rb FIX: skip some checks for CJK locale in TextSentinel (#7322) 2019-04-05 15:07:49 +02:00
theme_javascript_compiler.rb FIX: Prevent duplicate params for raw template theme handlebars helpers 2019-02-08 12:54:00 +00:00
theme_settings_manager.rb FEATURE: Allow string theme settings to display with multiple lines 2019-02-05 14:14:53 +00:00
theme_settings_parser.rb FEATURE: Allow string theme settings to display with multiple lines 2019-02-05 14:14:53 +00:00
theme_translation_manager.rb FEATURE: Support for localized themes (#6848) 2019-01-17 11:46:11 +00:00
theme_translation_parser.rb FIX: Circular argument reference 2019-01-25 17:44:02 +00:00
timeline_lookup.rb PERF: Don't pluck all the columns just to retrieve a single value. 2018-06-27 11:41:35 +08:00
topic_creator.rb FEATURE: New 'Reviewable' model to make reviewable items generic 2019-03-28 12:45:10 -04:00
topic_list_responder.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_publisher.rb FIX: Missing topic edited web hook when publishing a topic. 2019-04-16 14:28:23 +08:00
topic_query_sql.rb DEV: Rails 5.2 upgrade and global gem upgrade 2018-06-07 14:21:33 +10:00
topic_query.rb FEATURE: add suggested_topics_unread_max_days_old 2019-04-16 17:52:10 +10:00
topic_retriever.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
topic_subtype.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_view.rb FEATURE: Include a user's pending posts in the topic view 2019-04-12 14:25:12 -04:00
topics_bulk_action.rb FIX: Bulk deleting topics should ignore already deleted topics 2018-08-14 16:37:52 +02:00
trust_level.rb FIX: admin trust level user list URL should be consistent with new naming 2015-11-23 14:28:56 +05:30
twitter_api.rb FIX: allow Twitter videos to go fullscreen 2018-07-19 10:22:36 +05:30
unread.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
upload_creator.rb FIX: whitelist 'feGaussianBlur' and 'filter' svg elements 2019-04-01 12:56:47 +02:00
upload_fixer.rb typo in error message 2018-08-10 11:34:01 +10:00
upload_recovery.rb FIX: should look through posts for image markdown 2019-04-10 13:52:35 +05:30
url_helper.rb FIX: detect local assets for subfolder installs 2019-04-13 10:35:23 -07:00
user_name_suggester.rb FIX: don't raise an error on integer usernames 2018-09-10 22:17:56 +05:30
version.rb Version bump to v2.3.0.beta8. 2019-04-08 12:28:34 +08:00
wizard.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00