discourse/app/models
David Taylor 9bf522f227
FEATURE: Mixed case tagging (#6454)
- By default, behaviour is not changed: tags are made lowercase upon creation and edit.

- If force_lowercase_tags is disabled, then mixed case tags are allowed.

- Tags must remain case-insensitively unique. This is enforced by ActiveRecord and Postgres.

- A migration is added to provide a `UNIQUE` index on `lower(name)`. Migration includes a safety to correct any current tags that do not meet the criteria.

- A `where_name` scope is added to `models/tag.rb`, to allow easy case-insensitive lookups. This is used instead of `Tag.where(name: "blah")`.

- URLs remain lowercase. Mixed case URLs are functional, but have the lowercase equivalent as the canonical.
2018-10-05 10:23:52 +01:00
..
concerns FIX: Generate webhook payloads before destroy events (#6325) 2018-10-05 16:53:59 +08:00
about.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
admin_dashboard_data.rb FIX/FEATURE: don't blow up when can't reach theme's repo, show problem themes on dashboard 2018-09-17 09:49:53 +10:00
admin_dashboard_next_data.rb FIX: makes dashboard more resilient to errors (#6217) 2018-07-31 21:23:28 -04:00
admin_dashboard_next_general_data.rb FIX: treats users_(by_type|tl) as other reports (#6391) 2018-09-13 17:35:54 +02:00
admin_dashboard_next_index_data.rb UI: improves dashboard table reports 2018-07-31 17:35:13 -04:00
api_key.rb Fix all the errors to get our tests green on Rails 5.1. 2017-09-25 13:48:58 +08:00
application_request.rb FEATURE: control which web crawlers can access using a whitelist or blacklist 2018-03-22 15:41:02 -04:00
auto_track_duration_site_setting.rb fix the build 2015-09-14 10:48:24 +02:00
backup.rb FIX: refreshes disk_space on backup create/destroy (#6169) 2018-07-25 08:26:30 -04:00
badge_grouping.rb Update annotations. 2018-02-20 14:28:58 +08:00
badge_type.rb Update annotations. 2018-02-20 14:28:58 +08:00
badge.rb FEATURE: auto grant an available title when removing old title 2018-09-21 12:06:08 +10:00
category_and_topic_lists.rb FEATURE: new 'categories_and_latest' endpoint 2016-08-29 22:47:44 +02:00
category_custom_field.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
category_featured_topic.rb refinement and test for batch mode on feature_topics 2017-12-20 13:58:05 +11:00
category_group.rb FEATURE: move staff tags setting to tag group settings 2018-04-20 15:34:23 -04:00
category_list.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
category_page_style.rb FEATURE: New "Categories and Top" homepage style 2018-03-03 14:26:57 -05:00
category_search_data.rb Update annotations. 2018-07-16 14:19:07 +08:00
category_tag_group.rb Update annotations. 2018-02-20 14:28:58 +08:00
category_tag_stat.rb Update annotations. 2018-07-16 14:19:07 +08:00
category_tag.rb Update annotations. 2018-02-20 14:28:58 +08:00
category_user.rb FIX: don't send multiple requests when changing category notification (#6435) 2018-10-01 23:41:23 +08:00
category.rb FIX: Generate webhook payloads before destroy events (#6325) 2018-10-05 16:53:59 +08:00
child_theme.rb FEATURE: themes and components split 2018-08-24 11:30:00 +10:00
color_scheme_color.rb Update annotations. 2018-02-20 14:28:58 +08:00
color_scheme.rb FIX: use current user color scheme when filling theme-color attribute (#6384) 2018-09-12 11:04:58 +10:00
custom_emoji.rb Update annotations. 2017-03-22 14:26:53 +08:00
developer.rb missing annotation 2016-08-15 17:59:36 +10:00
digest_email_site_setting.rb FEATURE: More digest email frequency options. Digests can be sent as often as every 30 minutes. 2016-03-02 15:43:47 -05:00
directory_item.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
discourse_single_sign_on.rb SECURITY: correct edge case when SSO provides unvalidated emails 2018-09-11 08:24:02 +10:00
discourse_version_check.rb REFACTOR: Avoid duplicated logic on server and client. 2017-11-21 17:10:04 +08:00
draft_sequence.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
draft.rb Improvements to user drafts (#6226) 2018-08-02 07:41:27 +10:00
email_change_request.rb FIX: Don't allow invalid email to be saved. 2016-12-21 17:47:11 +08:00
email_log.rb FEATURE: add external details to user fields 2018-09-20 08:10:51 +05:30
email_token.rb Review Changes for f4f8a293e7. 2018-02-21 14:55:49 +08:00
embeddable_host.rb FIX: store the topic links using the cooked upload url 2018-08-14 12:23:32 +02:00
embedding.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
emoji_set_site_setting.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
emoji.rb FEATURE: emoji 11.0 "recently added" update (#6275) 2018-08-16 11:59:45 +02:00
facebook_user_info.rb Update annotations. 2018-07-16 14:19:07 +08:00
github_user_info.rb Update annotations. 2018-02-20 14:28:58 +08:00
given_daily_like.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
global_setting.rb rollback changes 2018-07-06 17:16:40 -05:00
google_user_info.rb Update annotations. 2018-02-20 14:28:58 +08:00
group_archived_message.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
group_custom_field.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
group_history.rb FEATURE: Group logs. 2016-12-12 17:29:54 +08:00
group_manager.rb update annotations 2015-09-18 10:41:10 +10:00
group_mention.rb Update annotations. 2018-02-20 14:28:58 +08:00
group_user.rb FEATURE: auto grant an available title when removing old title 2018-09-21 12:06:08 +10:00
group.rb FIX: Generate webhook payloads before destroy events (#6325) 2018-10-05 16:53:59 +08:00
incoming_domain.rb FIX: If the host can't be extracted don't raise an error 2017-05-04 13:26:37 -04:00
incoming_email.rb FEATURE: Use Message-ID for detecting email replies to group 2018-04-05 11:00:38 +02:00
incoming_link.rb FIX: ignore invalid usernames in incoming link tracker 2018-09-04 12:28:32 +10:00
incoming_links_report.rb UX: Improve category filtering and include subcategories 2018-08-10 10:50:05 +10:00
incoming_referer.rb FIX: catch specific exception 2014-08-06 10:00:55 +10:00
instagram_user_info.rb annotate models 2016-03-28 15:21:45 +11:00
invite_redeemer.rb FIX: Remove user fields when anonymizing user 2018-09-07 00:02:56 +02:00
invite.rb DEV: Rails 5.2 upgrade and global gem upgrade 2018-06-07 14:21:33 +10:00
invited_group.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
like_notification_frequency_site_setting.rb FEATURE: like notification frequency of never 2016-03-06 09:12:59 +11:00
locale_site_setting.rb FEATURE: Allow plugins to register a new locale 2018-01-25 14:57:41 +01:00
mailing_list_mode_site_setting.rb Remove daily mailing mode option as it doesn't scale. 2017-05-05 12:21:50 +08:00
muted_user.rb Update annotations. 2018-02-20 14:28:58 +08:00
new_topic_duration_site_setting.rb fix the build 2015-09-14 10:48:24 +02:00
notification_level_when_replying_site_setting.rb FEATURE: Add normal as a preference for topic subscription state when replying to a topic 2017-04-20 22:33:10 -04:00
notification.rb Update annotations. 2018-07-16 14:19:07 +08:00
oauth2_user_info.rb Update annotations. 2018-02-20 14:28:58 +08:00
onceoff_log.rb annotate models 2016-05-30 10:45:32 +10:00
optimized_image.rb FEATURE: add external details to user fields 2018-09-20 08:10:51 +05:30
permalink.rb Remove use of rescue nil. 2018-04-02 13:52:51 +08:00
plugin_store_row.rb Update annotations. 2018-02-20 14:28:58 +08:00
plugin_store.rb FEATURE: Added method to get multiple values at once from PluginStore. (#6225) 2018-08-01 18:42:40 +02:00
post_action_type.rb Remove legacy vote post action code. (#6009) 2018-07-09 16:54:18 +08:00
post_action.rb FIX: corrects typo and adds a spec for likes report (#6439) 2018-10-02 02:27:43 -07:00
post_analyzer.rb DEV: Avoid using send and make the method public instead. 2018-09-13 16:34:32 +08:00
post_custom_field.rb Update annotations. 2018-07-16 14:19:07 +08:00
post_detail.rb Update annotations. 2018-02-20 14:28:58 +08:00
post_mover.rb FIX: Moving posts to existing topic didn't update topic metadata 2018-08-01 18:05:43 +02:00
post_reply_key.rb Update annotations. 2018-07-24 15:49:55 +08:00
post_reply.rb FIX: Update post replies when we move posts. (#4324) 2016-07-13 17:34:21 +02:00
post_revision.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
post_search_data.rb Update annotations. 2018-07-16 14:19:07 +08:00
post_stat.rb Update annotations. 2018-02-20 14:28:58 +08:00
post_timing.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
post_upload.rb Update annotations. 2016-11-24 10:13:03 +08:00
post.rb FIX: Recover public actions (likes) when recovering a post (#6412) 2018-10-02 11:25:08 -04:00
previous_replies_site_setting.rb FEATURE: allow users to control how many previous replies they get 2016-02-19 13:57:07 +11:00
push_subscription.rb Update annotations. 2018-07-16 14:19:07 +08:00
queued_post.rb Rename approval web hook event type to queued post 2018-07-26 10:29:38 +05:30
quoted_post.rb FIX: ignore self-quotes from the same post when saving (#6082) 2018-07-10 16:17:28 +08:00
remote_theme.rb clear error if you can contact theme repo again 2018-09-17 09:49:53 +10:00
report.rb refactors trending search report to use SearchLog 2018-09-17 10:19:40 +10:00
s3_region_site_setting.rb FEATURE: Use S3 dualstack endpoints 2018-08-27 11:22:46 +10:00
scheduler_stat.rb purge scheduler_stats every 1 month instead of 3 2017-04-28 15:05:15 -07:00
screened_email.rb Update annotations. 2018-02-20 14:28:58 +08:00
screened_ip_address.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
screened_url.rb Update annotations. 2018-02-20 14:28:58 +08:00
search_log.rb refactors trending search report to use SearchLog 2018-09-17 10:19:40 +10:00
shared_draft.rb Update annotations. 2018-07-16 14:19:07 +08:00
single_sign_on_record.rb Update annotations. 2018-05-09 07:52:45 +08:00
site_setting.rb FEATURE: Use S3 dualstack endpoints 2018-08-27 11:22:46 +10:00
site.rb FIX: Include auth_providers for anonymous users when login_required 2018-08-07 09:24:16 +01:00
skipped_email_log.rb Add missing copy 2018-08-23 09:44:15 +02:00
slug_setting.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
stylesheet_cache.rb FIX: correctly keep stylesheet cache entries 2018-09-14 12:54:11 +10:00
tag_group_membership.rb Update annotations. 2018-02-20 14:28:58 +08:00
tag_group_permission.rb Update annotations. 2018-07-16 14:19:07 +08:00
tag_group.rb FIX: tags in a 'visible by everyone but usable only by staff' group weren't visible by everyone 2018-05-16 09:48:19 +02:00
tag_search_data.rb Update annotations. 2018-07-16 14:19:07 +08:00
tag_user.rb FEATURE: Mixed case tagging (#6454) 2018-10-05 10:23:52 +01:00
tag.rb FEATURE: Mixed case tagging (#6454) 2018-10-05 10:23:52 +01:00
theme_field.rb FEATURE: backend support for user-selectable components 2018-08-08 14:46:34 +10:00
theme_setting.rb Update annotations. 2018-07-16 14:19:07 +08:00
theme.rb FEATURE: add external details to user fields 2018-09-20 08:10:51 +05:30
top_lists.rb BUGFIX: show the draft on top page 2014-02-06 11:39:43 +01:00
top_menu_item.rb BUGFIX: proper handling of top_menu_items 2014-02-03 16:08:00 +01:00
top_topic.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
topic_allowed_group.rb update annotations 2014-04-08 17:35:44 +02:00
topic_allowed_user.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
topic_converter.rb FIX: update categories topic_count when converting topic to a PM and vice versa 2018-04-04 12:01:56 +05:30
topic_custom_field.rb Update annotations. 2018-07-16 14:19:07 +08:00
topic_embed.rb FIX: drop title updates through RSS feeds 2018-08-28 16:25:04 +10:00
topic_featured_users.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
topic_invite.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
topic_link_click.rb FIX: store the topic links using the cooked upload url 2018-08-14 12:23:32 +02:00
topic_link.rb FIX: store the topic links using the cooked upload url 2018-08-14 12:23:32 +02:00
topic_list.rb FIX: Shared draft performance fix + missing avatars 2018-03-28 16:11:43 -04:00
topic_notifier.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
topic_participants_summary.rb FEATURE: primary group class on avatars in topic list 2017-02-20 15:55:10 -05:00
topic_poster.rb FEATURE: primary group class on avatars in topic list 2017-02-20 15:55:10 -05:00
topic_posters_summary.rb Require dependency otherwise it causes Sidekiq to lock up in development. 2017-09-25 13:48:59 +08:00
topic_search_data.rb Update annotations. 2018-07-16 14:19:07 +08:00
topic_tag.rb FIX: automatically in/decrement topic_tags.pm_topic_count 2018-05-15 16:05:48 +02:00
topic_timer.rb Update annotations. 2018-07-16 14:19:07 +08:00
topic_tracking_state.rb Enable Lint/ShadowingOuterLocalVariable for Rubocop. 2018-09-04 10:16:42 +08:00
topic_user.rb FIX: don't allow inviting more than max_allowed_message_recipients 2018-08-23 14:36:49 +10:00
topic_view_item.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
topic.rb SECURITY: correct XSS on long topic titles 2018-09-18 08:54:44 +10:00
translation_override.rb Fix the build 2018-03-16 22:55:42 +01:00
trust_level3_requirements.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
trust_level_and_staff_setting.rb FEATURE: Support disabling tag creation for non-staff users. 2018-06-27 07:15:02 +08:00
trust_level_setting.rb FEATURE: Display trust level descriptions in site settings (#6421) 2018-09-21 15:10:38 +01:00
twitter_user_info.rb Update annotations. 2018-07-16 14:19:07 +08:00
unsubscribe_key.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
upload.rb Merge pull request #6414 from techAPJ/user-field-unique-key 2018-09-20 22:29:39 +05:30
user_action.rb make linter happy 2018-06-20 18:03:27 +10:00
user_api_key.rb FEATURE: Automatically expire keys if not used for a configurable amount of time. (#6264) 2018-08-20 17:36:14 +02:00
user_archived_message.rb Make rubocop happy again. 2018-06-07 13:28:18 +08:00
user_auth_token_log.rb FEATURE: Let users see their user auth tokens. (#6313) 2018-08-31 10:18:06 +02:00
user_auth_token.rb FEATURE: Let users see their user auth tokens. (#6313) 2018-08-31 10:18:06 +02:00
user_avatar.rb FIX: when uploads are destroyed clear up avatar refs in user table 2018-08-31 14:46:42 +10:00
user_badge.rb Update annotations. 2018-07-16 14:19:07 +08:00
user_badges.rb Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
user_custom_field.rb FIX: remove nullable dates post upgrade to Rails 4 2014-08-27 15:19:25 +10:00
user_email.rb Update annotations. 2018-07-16 14:19:07 +08:00
user_export.rb FIX: Clean up stale UserExport records daily. 2018-06-05 09:43:40 +08:00
user_field_option.rb Update annotations. 2018-02-20 14:28:58 +08:00
user_field.rb FEATURE: add external details to user fields 2018-09-20 08:10:51 +05:30
user_history.rb FEATURE: Log entity export in staff logs 2018-09-19 03:16:45 +05:30
user_open_id.rb Update annotations. 2018-02-20 14:28:58 +08:00
user_option.rb FEATURE: Groundwork for user-selectable theme components 2018-07-12 14:18:21 +10:00
user_profile_view.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
user_profile.rb FIX: store the topic links using the cooked upload url 2018-08-14 12:23:32 +02:00
user_search_data.rb Update annotations. 2018-07-16 14:19:07 +08:00
user_search.rb DEV: remove all calls to SqlBuilder use DB.build instead 2018-06-20 17:53:49 +10:00
user_second_factor.rb PERF: Add missing index on user_id for user_second_factors table. 2018-07-16 14:21:07 +08:00
user_stat.rb FEATURE: add external details to user fields 2018-09-20 08:10:51 +05:30
user_summary.rb FEATURE: add a Top Categories section to the user summary page, showing the categories in which a user has the most activity 2018-07-18 16:39:16 -04:00
user_upload.rb SECURITY: only allow picking of avatars created by self (#6417) 2018-09-19 22:33:10 -07:00
user_visit.rb DEV: remove exec_sql and replace with mini_sql 2018-06-19 16:13:36 +10:00
user_warning.rb Update annotations. 2018-02-20 14:28:58 +08:00
user.rb FIX: Generate webhook payloads before destroy events (#6325) 2018-10-05 16:53:59 +08:00
username_validator.rb Revert "FIX: Username uniqueness check should not happen to current user_id" 2018-04-03 00:44:04 +08:00
watched_word.rb Update annotations. 2018-02-20 14:28:58 +08:00
web_crawler_request.rb Update annotations. 2018-07-16 14:19:07 +08:00
web_hook_event_type.rb Rename approval web hook event type to queued post 2018-07-26 10:29:38 +05:30
web_hook_event.rb Update annotations. 2018-02-20 14:28:58 +08:00
web_hook.rb FIX: Generate webhook payloads before destroy events (#6325) 2018-10-05 16:53:59 +08:00