discourse/app/models
Martin Brennan e62e93f83a
FEATURE: Introduce personal_message_enabled_groups setting (#18042)
This will replace `enable_personal_messages` and
`min_trust_to_send_messages`, this commit introduces
the setting `personal_message_enabled_groups`
and uses it in all places that `enable_personal_messages`
and `min_trust_to_send_messages` currently apply.

A migration is included to set `personal_message_enabled_groups`
based on the following rules:

* If `enable_personal_messages` was false, then set
  `personal_message_enabled_groups` to `3`, which is
  the staff auto group
* If `min_trust_to_send_messages` is not default (1)
  and the above condition is false, then set the
  `personal_message_enabled_groups` setting to
  the appropriate auto group based on the trust level
* Otherwise just set `personal_message_enabled_groups` to
  11 which is the TL1 auto group

After follow-up PRs to plugins using these old settings, we will be
able to drop the old settings from core, in the meantime I've added
 DEPRECATED notices to their descriptions and added them
to the deprecated site settings list.

This commit also introduces a `_map` shortcut method definition
for all `group_list` site settings, e.g. `SiteSetting.personal_message_enabled_groups`
also has `SiteSetting.personal_message_enabled_groups_map` available,
which automatically splits the setting by `|` and converts it into
an array of integers.
2022-09-26 13:58:40 +10:00
..
concerns DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
about.rb FEATURE: Add plugin API to register About stat group (#17442) 2022-07-15 13:16:00 +10:00
admin_dashboard_data.rb FEATURE: Add support for case-sensitive Watched Words (#17445) 2022-08-02 10:06:03 +02:00
admin_dashboard_general_data.rb
admin_dashboard_index_data.rb
allowed_pm_user.rb FEATURE: Allow List for PMs (#10270) 2020-07-20 15:23:49 -06:00
anonymous_user.rb
api_key.rb Update wordpress scopes and add ``session/scopes`` endpoint (#15366) 2022-05-02 12:15:32 -03:00
api_key_scope.rb DEV: add smtp_should_reject to the receive_emails api key scope (#17110) 2022-06-16 13:46:56 -03:00
application_request.rb PERF: perform all cached counting in background (#15991) 2022-02-22 16:45:25 +00:00
associated_group.rb FEATURE: Experimental support for group membership via google auth (#14835) 2021-12-09 12:30:27 +00:00
auto_track_duration_site_setting.rb
backup_draft_post.rb
backup_draft_topic.rb
backup_file.rb
backup_location_site_setting.rb
backup_metadata.rb FIX: Prevent "uploads are missing in S3" alerts after restoring a backup 2020-09-10 21:37:48 +02:00
badge.rb DEV: Refactor user_badge_granted DiscourseEvent logic (#17579) 2022-07-22 09:06:02 +08:00
badge_grouping.rb
badge_type.rb
base_font_setting.rb DEV: Do not translate font names (#10723) 2020-09-23 12:00:07 +03:00
bookmark.rb FIX: Use bookmarkable pattern for bookmark cleanup (#17202) 2022-06-23 14:09:39 +10:00
category.rb FEATURE: Decouple category/tag presence in sidebar from notifi level (#17273) 2022-06-30 14:54:20 +08:00
category_and_topic_lists.rb
category_custom_field.rb
category_featured_topic.rb FIX: Use Discourse.system_user when we need a placeholder admin (#9781) 2020-06-24 15:51:30 +10:00
category_group.rb
category_list.rb DEV: Filter topics by tag for categories (#17953) 2022-08-17 11:51:02 -05:00
category_page_style.rb FEATURE: add categories page style to order topics by created date (#17500) 2022-07-25 09:41:43 -04:00
category_required_tag_group.rb FEATURE: Allow multiple required tag groups for a category (#16381) 2022-04-06 14:08:06 +01:00
category_search_data.rb
category_tag.rb PERF: Cache categories in Site model take 3. 2021-06-24 13:30:51 +08:00
category_tag_group.rb PERF: Cache categories in Site model take 3. 2021-06-24 13:30:51 +08:00
category_tag_stat.rb
category_user.rb UX: Change wording for 'regular' categories to 'normal' (#17134) 2022-06-20 06:49:33 +03:00
child_theme.rb
color_scheme.rb DEV: Add more color schemes (#17398) 2022-07-08 16:46:32 -05:00
color_scheme_color.rb FIX: Wizard could not send custom color schemes to the client correctly (#10484) 2020-08-20 17:10:33 -07:00
color_scheme_setting.rb Add site setting to pick dark mode color scheme (#10390) 2020-08-07 08:52:47 -04:00
custom_emoji.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
developer.rb
digest_email_site_setting.rb
directory_column.rb Revert "DEV: Remove stale ignored_columns from models." 2022-01-11 11:00:58 +08:00
directory_item.rb DEV: Plugin API to add directory columns (#13440) 2021-06-22 13:00:04 -05:00
discourse_connect.rb FIX: DiscourseConnect login did not auto approve based on email domain (#17006) 2022-06-06 15:16:01 +08:00
discourse_version_check.rb
dismissed_topic_user.rb FEATURE: New way to dismiss new topics (#11927) 2021-02-04 11:27:34 +11:00
do_not_disturb_timing.rb DEV: Fix random typos (#16066) 2022-02-28 10:20:58 +08:00
draft.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
draft_sequence.rb FIX: Update draft count when sequence is increased (#13940) 2021-08-04 13:30:37 +03:00
email_change_request.rb DEV: pull email address validation out to a new EmailAddressValidator 2022-02-17 21:49:22 -05:00
email_level_site_setting.rb
email_log.rb FEATURE: Log the SMTP response in EmailLog (#17056) 2022-06-15 10:28:30 +10:00
email_style.rb
email_token.rb FIX: Do not redeem invites if user resets password (#17486) 2022-07-19 22:25:01 +03:00
embeddable_host.rb DEV: Rename `UriHelper.escape_uri` to `.normalized_encode` 2022-08-09 11:55:25 +01:00
embedding.rb FIX: use allowlist and blocklist terminology (#10209) 2020-07-27 10:23:54 +10:00
emoji.rb DEV: emoji model should set the group of the emoji (#18237) 2022-09-14 13:10:48 +02:00
emoji_set_site_setting.rb DEV: Remove JoyPixels emoji option (#12197) 2021-02-26 07:44:52 -05:00
external_upload_stub.rb DEV: Do not destroy external upload stub on error in debug mode (#14139) 2021-08-25 11:11:19 +10:00
given_daily_like.rb
global_setting.rb FIX: LOAD_PLUGINS=0 in dev/prod, warn in plugin:pull_compatible_all (#15537) 2022-01-11 12:30:22 +00:00
group.rb DEV:Using symbols is deprecated, use strings instead (#17874) 2022-08-11 11:33:41 -03:00
group_archived_message.rb FIX: Update group inbox notifications on archive/unarchive (#16152) 2022-03-11 11:57:47 +01:00
group_associated_group.rb FEATURE: Experimental support for group membership via google auth (#14835) 2021-12-09 12:30:27 +00:00
group_category_notification_default.rb FEATURE: set notification levels when added to a group (#10378) 2020-08-06 12:27:27 -04:00
group_custom_field.rb
group_history.rb
group_manager.rb
group_mention.rb
group_request.rb
group_tag_notification_default.rb FEATURE: set notification levels when added to a group (#10378) 2020-08-06 12:27:27 -04:00
group_user.rb FIX: Restore trust level when leaving group (#17954) 2022-08-29 13:00:48 +03:00
ignored_user.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
imap_sync_log.rb DEV: IMAP debugging improvements (#11784) 2021-01-21 11:37:47 +10:00
incoming_domain.rb
incoming_email.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
incoming_link.rb
incoming_links_report.rb FEATURE: Make report filters reusable (#9444) 2020-04-22 11:52:50 +03:00
incoming_referer.rb
invite.rb SECURITY: Limit email invitations to topic 2022-08-10 11:33:16 +02:00
invite_redeemer.rb FIX: do not redeem expired invites on new user signup (#17798) 2022-08-05 07:50:48 +05:30
invited_group.rb FEATURE: Various improvements to invite system (#12314) 2021-03-09 00:15:14 +02:00
invited_user.rb FEATURE: Various improvements to invite system (#12298) 2021-03-06 13:29:35 +02:00
javascript_cache.rb FIX: Ensure theme_uploads_local only has one `/` at beginning (#17719) 2022-07-28 22:20:52 +01:00
like_notification_frequency_site_setting.rb
linked_topic.rb FEATURE: new setting to create a linked topic on autoclosing mega topics (#11001) 2020-11-02 12:18:48 +05:30
locale_site_setting.rb DEV: Fix rubocop issues (#14715) 2021-10-27 11:39:28 +03:00
mailing_list_mode_site_setting.rb
muted_user.rb
new_topic_duration_site_setting.rb
notification.rb DEV: Prioritize unread notifications in the experimental user menu (#18216) 2022-09-12 21:19:25 +03:00
notification_level_when_replying_site_setting.rb
oauth2_user_info.rb DEV: Move OAuth2UserInfo deprecation to after_save (#15704) 2022-01-25 10:29:31 +00:00
onceoff_log.rb
optimized_image.rb FIX: Ensure 'crop' always returns requested dimensions (#16437) 2022-04-19 11:21:24 +01:00
permalink.rb FIX: Show error messages when adding permalinks in the admin UI (#12545) 2021-03-29 13:36:59 -05:00
plugin_store.rb
plugin_store_row.rb
post.rb FEATURE: Overhaul email threading (#17996) 2022-09-26 09:14:24 +10:00
post_action.rb DEV: Remove PostAction/UserAction bookmark refs (#16681) 2022-05-10 10:42:18 +10:00
post_action_type.rb DEV: Compatibility with TruffleRuby (#16864) 2022-05-19 21:56:55 +02:00
post_analyzer.rb FEATURE: Allow hotlinked media to be blocked (#16940) 2022-06-07 15:23:04 +01:00
post_custom_field.rb DEV: Drop old hotlinked image data from post_custom_fields (#16594) 2022-05-12 15:34:35 +01:00
post_detail.rb
post_hotlinked_media.rb DEV: Map already-downloaded hotlinked images in post_process_cooked 2022-05-23 14:28:02 +01:00
post_mover.rb FEATURE: Promote polymorphic bookmarks to default and migrate (#16729) 2022-05-23 10:07:15 +10:00
post_reply.rb DEV: Remove stale ignored_columns. (#11160) 2020-11-09 15:57:59 +11:00
post_reply_key.rb FIX: Email Send post has already been taken error (#16992) 2022-06-06 13:13:26 -06:00
post_revision.rb FEATURE: Add post edits count to user activity (#13495) 2021-08-02 10:15:53 -04:00
post_search_data.rb DEV: annotate models (#11047) 2020-10-27 23:42:33 +05:30
post_stat.rb
post_timing.rb FEATURE: whispers available for groups (#17170) 2022-06-30 10:18:12 +10:00
post_upload.rb
previous_replies_site_setting.rb
private_message_topic_tracking_state.rb FEATURE: whispers available for groups (#17170) 2022-06-30 10:18:12 +10:00
published_page.rb DEV: Upgrade Rails to 6.1.3.1 (#12688) 2021-04-21 12:36:32 +03:00
push_subscription.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
quoted_post.rb FEATURE: Nokogumbo (#9577) 2020-05-05 13:46:57 +10:00
remote_theme.rb FEATURE: Allow private themes to be partially installed (#17644) 2022-08-10 13:30:18 +03:00
remove_muted_tags_from_latest_site_setting.rb
report.rb Add three reports (#14338) 2021-12-02 22:41:55 +05:30
reviewable.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_claimed_topic.rb FIX: Don't log a claimed topic database error during tests 2020-01-09 12:32:05 -05:00
reviewable_flagged_post.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_history.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_post.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_priority_setting.rb
reviewable_queued_post.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_score.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_sensitivity_setting.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
reviewable_user.rb DEV: Use AR enums in reviewables related code 2022-09-22 14:44:27 +02:00
s3_region_site_setting.rb Added S3 region eu-south-1 Milanù 2021-09-16 12:33:43 -04:00
screened_email.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
screened_ip_address.rb FEATURE: Improve screened IPs roll up and extend for IPv6 (#15585) 2022-04-12 21:07:37 +03:00
screened_url.rb
search_log.rb FEATURE: show recent searches in quick search panel (#15024) 2021-11-25 15:44:15 -05:00
shared_draft.rb
shelved_notification.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
sidebar_section_link.rb FEATURE: Decouple category/tag presence in sidebar from notifi level (#17273) 2022-06-30 14:54:20 +08:00
single_sign_on_record.rb
site.rb FIX: hide welcome topic banner as soon as the welcome topic is edited (#18125) 2022-09-01 09:44:21 +05:30
site_setting.rb FEATURE: Introduce personal_message_enabled_groups setting (#18042) 2022-09-26 13:58:40 +10:00
sitemap.rb FEATURE: Let sites add a sitemap.xml file. (#16357) 2022-04-12 10:33:59 -03:00
skipped_email_log.rb FIX: Handle edge cases for group SMTP email job (#13631) 2021-07-05 14:56:32 +10:00
slug_setting.rb
stylesheet_cache.rb PERF: Add scheduled job to delete old stylesheet cache rows (#13747) 2021-07-16 10:58:01 -04:00
tag.rb FEATURE: Decouple category/tag presence in sidebar from notifi level (#17273) 2022-06-30 14:54:20 +08:00
tag_group.rb FIX: tag groups were not visible to allowed group members (#17183) 2022-06-21 23:40:54 +05:30
tag_group_membership.rb
tag_group_permission.rb
tag_search_data.rb
tag_user.rb DEV: Do not use hard-coded everyone group id (#15679) 2022-01-21 15:56:45 -07:00
theme.rb FIX: Ensure `<script>` handlebars templates are namespaced correctly (#18178) 2022-09-04 13:01:10 +02:00
theme_field.rb FIX: Ensure `<script>` handlebars templates are namespaced correctly (#18178) 2022-09-04 13:01:10 +02:00
theme_modifier_set.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
theme_setting.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
theme_translation_override.rb DEV: Use the theme cache helper for settings 2022-02-21 09:45:14 +00:00
top_lists.rb
top_menu_item.rb
top_topic.rb FIX: Better and more secure validation of periods for TopicQuery 2021-07-23 14:24:44 -04:00
topic.rb FIX: Skip topic allowed user for small actions (#18075) 2022-08-29 13:01:16 +03:00
topic_allowed_group.rb
topic_allowed_user.rb
topic_converter.rb FIX: Do not invite whisper or small action posters (#18123) 2022-08-29 15:52:54 +03:00
topic_custom_field.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
topic_embed.rb DEV: Rename `UriHelper.escape_uri` to `.normalized_encode` 2022-08-09 11:55:25 +01:00
topic_featured_users.rb
topic_group.rb Changed `CONFLICT` to `SQL` for multiline strings 2019-12-13 11:51:40 -05:00
topic_invite.rb
topic_link.rb FIX: Hide links to muted topics and in categories list (#14761) 2021-10-29 17:52:23 +03:00
topic_link_click.rb FIX: Count clicks on links with query params (#15969) 2022-02-18 14:47:56 +02:00
topic_list.rb FIX: Avoid duplicate topic-list requests (#18073) 2022-08-24 11:54:01 +01:00
topic_notifier.rb
topic_participants_summary.rb PERF: Combine avatar_lookup and primary_group_lookup into user_lookup (#10253) 2020-07-17 10:48:08 +01:00
topic_poster.rb REFACTOR: Add `full_url` and `display_name` to `User` 2022-04-14 11:53:57 +02:00
topic_posters_summary.rb FIX: Add plugin event to topic list user lookup (#14116) 2021-08-25 13:16:08 +03:00
topic_search_data.rb
topic_tag.rb
topic_thumbnail.rb DEV: followup to prev commit 2020-05-26 16:19:05 +10:00
topic_timer.rb PERF: Add index for TopicTimer#topic_id (#17680) 2022-07-27 16:21:11 +08:00
topic_tracking_state.rb DEV: Introduce SiteSetting to enable/disable Sidebar. (#17662) 2022-07-27 13:42:26 +08:00
topic_user.rb DEV: Fix random typos (#16066) 2022-02-28 10:20:58 +08:00
topic_view_item.rb FIX: exclude private messages from TL3 requirements 2020-04-07 17:36:07 -04:00
translation_override.rb DEV: Upgrade to Rails 7 2022-04-28 11:51:03 +02:00
trust_level3_requirements.rb PERF: Faster TL3 promotion replies needed calculation (#10416) 2020-08-12 11:28:34 -03:00
trust_level_and_staff_and_disabled_setting.rb FEATURE: Make allow_uploaded_avatars accept TL (#14091) 2021-08-24 10:46:28 +03:00
trust_level_and_staff_setting.rb FIX: Don't store translated trust level names in anonymous cache (#13224) 2021-06-01 22:11:48 +02:00
trust_level_setting.rb FIX: Don't store translated trust level names in anonymous cache (#13224) 2021-06-01 22:11:48 +02:00
unsubscribe_key.rb FEATURE: Custom unsubscribe options (#17090) 2022-06-21 15:49:47 -03:00
upload.rb FIX: Handle failed download when calculating image dominant color (#18342) 2022-09-23 12:42:07 +01:00
upload_reference.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
user.rb FEATURE: Introduce personal_message_enabled_groups setting (#18042) 2022-09-26 13:58:40 +10:00
user_action.rb DEV: Expose user action types where the user was the instigator (#16723) 2022-05-11 15:15:53 -05:00
user_api_key.rb Revert "DEV: Remove stale ignored_columns from models." 2022-01-11 11:00:58 +08:00
user_api_key_scope.rb FIX: Restore users#topic_tracking_state route to api session_info scope (#10992) 2020-10-21 19:44:34 +01:00
user_archived_message.rb FIX: Don't publish PM archive events to acting user. (#14291) 2021-09-10 09:20:50 +08:00
user_associated_account.rb
user_associated_group.rb FEATURE: Experimental support for group membership via google auth (#14835) 2021-12-09 12:30:27 +00:00
user_auth_token.rb FEATURE: Apply rate limits per user instead of IP for trusted users (#14706) 2021-11-17 23:27:30 +03:00
user_auth_token_log.rb
user_avatar.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
user_badge.rb DEV: Refactor user_badge_granted DiscourseEvent logic (#17579) 2022-07-22 09:06:02 +08:00
user_badges.rb
user_bookmark_list.rb FIX: Return next bookmarks page only if it exists (#18139) 2022-09-01 13:04:00 +03:00
user_custom_field.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
user_email.rb FEATURE: Add email normalization rules setting (#14593) 2021-11-24 11:30:06 +02:00
user_export.rb FEATURE: Create upload_references table (#16146) 2022-06-09 09:24:30 +10:00
user_field.rb DEV: Make user field validation more specific (#16746) 2022-05-16 14:21:33 +01:00
user_field_option.rb FIX: Validate value of custom dropdown user fields - dropdowns and multiple selects (#13890) 2021-07-30 13:50:47 -04:00
user_history.rb FEATURE: Promote the "delete group" staff action log. (#16656) 2022-05-09 12:12:52 -03:00
user_ip_address_history.rb DEV: annotate models (#11047) 2020-10-27 23:42:33 +05:30
user_notification_schedule.rb DEV: Update core model annotations 2021-07-06 10:11:06 +01:00
user_open_id.rb DEV: Drop legacy OpenID 2.0 support (#8894) 2020-02-07 17:32:35 +00:00
user_option.rb DEV: Add likes, mentions and replies tabs to the new user menu (#17623) 2022-07-25 15:19:53 +03:00
user_profile.rb SECURITY: Limit user profile field length (#18302) 2022-09-21 12:07:06 +10:00
user_profile_view.rb
user_search.rb DEV: return user status on the user search route (#17716) 2022-08-09 14:54:33 +04:00
user_search_data.rb
user_second_factor.rb SECURITY: Improve second factor auth logic 2020-01-10 10:45:56 +10:00
user_security_key.rb
user_stat.rb FEATURE: whispers available for groups (#17170) 2022-06-30 10:18:12 +10:00
user_status.rb FEATURE: auto remove user status after predefined period (#17236) 2022-07-05 19:12:22 +04:00
user_summary.rb FIX: Show links with 0 clicks in top links section (#16016) 2022-02-21 22:15:38 +02:00
user_upload.rb
user_visit.rb
user_warning.rb
username_validator.rb FIX: use allowlist and blocklist terminology (#10209) 2020-07-27 10:23:54 +10:00
watched_word.rb FIX: Allow to add the same watched word with a different case (#17799) 2022-08-05 12:18:17 +02:00
web_crawler_request.rb PERF: perform all cached counting in background (#15991) 2022-02-22 16:45:25 +00:00
web_hook.rb FEATURE: add support for like webhooks (#12917) 2021-04-30 17:08:38 -07:00
web_hook_event.rb
web_hook_event_type.rb FEATURE: adds the user_promoted event to webhooks (#15996) 2022-02-22 10:57:18 +01:00