discourse/lib
David Taylor 0d0d78841b
FIX: Remove `plugin.enabled?` checks at initialization time (#6166)
Checking `plugin.enabled?` while initializing plugins causes issues in two ways:
  - An application restart is required for changes to take effect. A load-balanced multi-server environment could behave very weirdly if containers restart at different times.
  - In a multisite environment, it takes the `enabled?` setting from the default site. Changes on that site affect all other sites in the cluster.

Instead, `plugin.enabled?` should be checked at runtime, in the context of a request. This commit removes `plugin.enabled?` from many `instance.rb` methods.

I have added a working `plugin.enabled?` implementation for methods that actually affect security/functionality:
  - `post_custom_fields_whitelist`
  - `whitelist_staff_user_custom_field`
  - `add_permitted_post_create_param`
2018-07-25 16:44:09 +01:00
..
active_record/connection_adapters FIX: Don't clear connections on the same process. 2018-06-12 13:06:25 +08:00
auth FEATURE: Add revoke and reconnect functionality for google logins 2018-07-25 16:03:14 +01:00
autospec DEV: handle termination cleanly in autospec 2018-06-19 16:13:36 +10:00
backup_restore FIX: refreshes disk_space on backup create/destroy (#6169) 2018-07-25 08:26:30 -04:00
common_passwords Make rubocop happy again. 2018-06-07 13:28:18 +08:00
demon DEV: handle termination cleanly in autospec 2018-06-19 16:13:36 +10:00
email PERF: Move `EmailLog#reply_key` into new `post_reply_keys` table. 2018-07-24 13:51:53 +08:00
emoji FEATURE: adds emoji search aliases 2018-05-01 15:43:49 +02:00
es6_module_transpiler FEATURE: Use Glimmer compiler for widget templates 2017-09-01 09:28:16 -04:00
file_store rollback changes 2018-07-06 17:16:40 -05:00
freedom_patches replace error with message 2018-07-04 09:42:38 +10:00
guardian FEATURE: per-category approval settings (#5778) 2018-07-13 12:51:08 +10:00
highlight_js update highlight.js to 9.12.0 2017-07-05 11:12:10 +02:00
i18n Make rubocop happy again. 2018-06-07 13:28:18 +08:00
import Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
import_export Remove use of `rescue nil`. 2018-04-02 13:52:51 +08:00
javascripts updates moment.js 2.22.1 and vendor moment-timezone 0.5.14 2018-04-26 09:15:53 +02:00
middleware FIX: never block /srv/status which is used for health checks 2018-07-18 12:37:01 +10:00
migration Remove legacy vote post action code. (#6009) 2018-07-09 16:54:18 +08:00
onebox Make rubocop happy again. 2018-06-07 13:28:18 +08:00
plugin FIX: Remove `plugin.enabled?` checks at initialization time (#6166) 2018-07-25 16:44:09 +01:00
pretty_text FEATURE: Add `quote-modified` class if a quote has been modified 2018-03-13 13:41:06 -04:00
rate_limiter Add specs for `RateLimiter::LimitExceeded#description`. 2018-06-19 07:48:03 +08:00
scheduler Revert "FIX: Don't clear active connections in defer queue." 2018-06-19 17:58:21 +08:00
search FEATURE: show tags in search results 2017-08-25 11:52:59 -04:00
sidekiq DEV: Better clean up for PostgreSQL failover test. 2018-07-10 09:53:25 +08:00
site_settings FIX: Don't rely on setting data type read from database 2018-07-25 11:40:59 +02:00
stylesheet FEATURE: Groundwork for user-selectable theme components 2018-07-12 14:18:21 +10:00
tasks Rake task called method with wrong arguments 2018-07-24 00:10:09 +02:00
theme_store FIX: unable to import private themes due to key checking 2018-04-03 16:11:03 +10:00
validators FIX: staged users are still tl0 but do not trigger spam if 1 week old. 2018-06-18 17:20:04 -07:00
wizard UX: Preview multiple color schemes in wizard (#6151) 2018-07-24 09:00:20 -04:00
admin_confirmation.rb SECURITY: Confirm new administrator accounts via email 2017-04-04 15:59:01 -04:00
admin_constraint.rb Add extensibility to admin constraints 2018-01-25 13:56:08 -05:00
admin_user_index_query.rb FEATURE: Second factor backup 2018-06-28 10:12:32 +02: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 Added Instagram login method 2016-02-25 12:13:59 +10:00
avatar_lookup.rb Remove irrelevant comment. 2017-09-08 14:07:24 +08:00
badge_queries.rb FEATURE: Support an end date for user silencing 2017-11-14 13:20:19 -05:00
base62.rb remove constant warning in base62 file 2018-01-19 19:52:42 +01:00
cache.rb dashboard next: caching, mobile support and new charts 2018-05-03 15:41:41 +02:00
canonical_url.rb
category_badge.rb SECURITY: category badges should HTML escape names 2018-06-28 18:15:07 +10: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 FIX: only show the sequential replies warning for regular posts 2018-07-04 22:51:19 +02: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
cooked_post_processor.rb FIX: URL with params for svg images should not be light boxed. 2018-06-20 10:47:14 +08:00
crawler_detection.rb FIX: cubot android devices were detected as crawlers 2018-06-21 10:56:46 +10:00
current_user.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
custom_renderer.rb
custom_setting_providers.rb Plugins can register providers for global settings 2017-01-09 17:18:58 -05:00
db_helper.rb DbHelper.remap: add options to anchor at left and right of the column value 2018-06-07 13:16:03 -04:00
directory_helper.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse.rb FEATURE: List, revoke and reconnect associated accounts. Phase 1 (#6099) 2018-07-23 16:51:57 +01: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 Remove stubs on DiscourseEvent in tests. 2017-06-01 16:21:00 +09:00
discourse_hub.rb DEV: private means nothing for class methods 2017-11-01 16:43:19 +11:00
discourse_iife.rb Allow the loader to understand when files are moved 2016-11-15 11:41:16 -05:00
discourse_logstash_logger.rb FIX: Incorrect formatter used when logstash formatter is enabled. 2018-04-17 12:07:52 +08:00
discourse_plugin.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
discourse_plugin_registry.rb FEATURE: List, revoke and reconnect associated accounts. Phase 1 (#6099) 2018-07-23 16:51:57 +01:00
discourse_redis.rb FIX: Be more aggressive in checking master when trying to fallback. 2018-06-12 00:09:15 +08:00
discourse_tagging.rb FIX: automatically in/decrement topic_tags.pm_topic_count 2018-05-15 16:05:48 +02:00
discourse_updates.rb REFACTOR: Avoid duplicated logic on server and client. 2017-11-21 17:10:04 +08:00
disk_space.rb FIX: makes disk_space computation more resilient (#6172) 2018-07-25 11:04:01 -04:00
distributed_cache.rb Allow `DistributedCache#delete` to not publish changes. 2017-10-20 23:03:42 +08:00
distributed_memoizer.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
distributed_mutex.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
edit_rate_limiter.rb Add better error messages for rate limits. 2015-09-24 13:52:46 -04:00
email.rb Upgrade mail gem to remove dependency on mime-types. 2018-03-14 14:37:55 +08: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
enum.rb Enums that are used in tables need to be stable 2016-01-08 20:43:11 +05:30
enum_site_setting.rb
excerpt_parser.rb FIX: Calculation of text length for <details> in excerpt was wrong 2018-03-12 16:55:23 +01: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 Make rubocop happy again. 2018-06-07 13:28:18 +08: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: Broken specs 2018-07-24 12:00:34 -04:00
flag_query.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
flag_settings.rb Refactor flag types for more customization 2017-10-19 13:55:23 -04:00
gaps.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
global_path.rb FEATURE: allow specifying s3 config via globals 2017-10-06 16:20:01 +11:00
guardian.rb FEATURE: Groundwork for user-selectable theme components 2018-07-12 14:18:21 +10:00
has_errors.rb Add `PostCreator#create!`. 2016-07-15 11:36:06 +08:00
headless-ember.js
hijack.rb FEATURE: detect when client thinks user is logged on but is not 2018-03-06 16:49:31 +11:00
homepage_constraint.rb FEATURE: Allow the user to select a custom home page (#5268) 2017-11-10 06:45:19 +11:00
html_prettify.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
html_to_markdown.rb FIX: handle <pre> inside <blockquote> in html_to_markdown 2018-02-26 23:28:02 +01:00
image_sizer.rb FIX: cropping GIF wasn't working 2016-07-27 18:48:02 +02:00
inline_oneboxer.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
introduction_updater.rb Add new welcome message step 2016-09-22 09:52:19 -04: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 Safety in case translations are missing root keys 2018-06-12 10:09:57 -04:00
json_error.rb FEATURE: View flags grouped by topic 2017-09-25 12:25:14 -04: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 Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
mem_info.rb
memory_diagnostics.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
message_bus_diags.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
method_profiler.rb FIX: stop double counting net calls in logs 2018-02-28 10:45:11 +11:00
mini_sql_multisite_connection.rb Move into MiniSQLMultisiteConnection, and add test for rollback 2018-07-24 09:41:55 +01:00
mobile_detection.rb radically simplify our mobile user agent detection 2016-03-26 02:02:23 -07:00
new_post_manager.rb FEATURE: per-category approval settings (#5778) 2018-07-13 12:51:08 +10:00
new_post_result.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
notification_levels.rb Server side code for Watching First Post Only 2016-07-07 11:21:50 -04:00
oneboxer.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
onpdiff.rb
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 Add some more debugging information when a plugin can't find a gem 2017-08-02 14:00:18 -04:00
post_action_creator.rb PERF: Avoid calling expensive `PostGuardian#can_see_post?` multiple times. 2017-09-08 14:07:24 +08:00
post_creator.rb FEATURE: Create hidden posts for received spam emails (#6010) 2018-07-05 11:07:46 +02:00
post_destroyer.rb add checks for staff and system user before sending flags_agreed_and_post_deleted message 2018-07-24 19:25:11 -04:00
post_enqueuer.rb FIX: When approving/rejecting a post it should delete the user action 2015-04-24 15:25:47 -04:00
post_jobs_enqueuer.rb FIX: ensure 'notifications_state' is up to date after creating a notification 2018-05-26 02:09:48 +02: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 FEATURE: per-category approval settings (#5778) 2018-07-13 12:51:08 +10:00
pretty_text.rb fix indent 2018-06-08 13:56:20 -04:00
primary_group_lookup.rb PERF: Remove N+1 query when generating posters summary. 2017-09-14 12:07:35 +08:00
promotion.rb FEATURE: send message when a user reaches tl1 2018-06-22 13:20:00 -07: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
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 FEATURE: Add custom S3 Endpoint and DigitalOcean Spaces/Minio support for Backups (#6045) 2018-07-16 14:44:55 +10:00
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 FEATURE: Add search not operator for tags. 2018-07-03 15:57:34 +08:00
secure_session.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
single_sign_on.rb FEATURE: add website field to SSO 2018-06-25 16:09:39 +10:00
site_setting_extension.rb REFACTOR: admin site settings controller specs to requests (#5966) 2018-06-11 12:48:09 +08:00
slug.rb FIX: strip emoji string from slug 2018-04-18 11:32:32 +05:30
socket_server.rb Remove use of `rescue nil`. 2018-04-02 13:52:51 +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 Extensibility for custom staff check 2018-03-28 14:48:14 -04:00
staff_message_format.rb More extensibility for custom silence/suspend messages 2018-01-19 11:35:19 -05:00
stats_socket.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
suggested_topics_builder.rb Avoid allocating an extra array. 2017-09-08 14:07:24 +08:00
system_message.rb Convert server side paths to use `/u/` 2017-03-30 10:23:24 -04:00
text_cleaner.rb FIX: strip zero width spaces from topic title 2018-02-21 00:12:39 +05:30
text_sentinel.rb rename 'min_private_message_{post/title}_length' to 'min_personal_message_{post/title}_length' 2018-02-01 13:25:29 +05:30
theme_settings_manager.rb FEATURE: Theme settings (2) (#5611) 2018-03-04 19:04:23 -05:00
theme_settings_parser.rb FEATURE: Theme settings (2) (#5611) 2018-03-04 19:04:23 -05: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 add client side validation for category minimum_required_tags 2018-04-11 07:17:52 +05:30
topic_list_responder.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_publisher.rb FIX: Update `last_version_at` when publishing 2018-03-26 16:06:20 -04:00
topic_query.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
topic_query_sql.rb DEV: Rails 5.2 upgrade and global gem upgrade 2018-06-07 14:21:33 +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 FIX: Select+below will ask server for post ids on megatopics. 2018-07-13 15:10:39 +08:00
topics_bulk_action.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10: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 Add compatibility for ImageMagick7. 2018-07-17 15:50:58 +08:00
url_helper.rb Move escape_uri method to a more suitable place 2017-12-12 20:17:46 +01:00
user_name_suggester.rb FIX: suggested username should not be more than setting max_username_length 2017-03-29 18:19:28 +05:30
version.rb Version bump to v2.1.0.beta2 2018-06-21 10:41:52 -04:00
wizard.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00