discourse/app/controllers
Renato Atilio eaca2d8a59
FEATURE: Add "Events" category type for Calendar plugin (#39727)
Adds an Events category type alongside Support and Ideas in the
simplified category creation flow. Auto-enables Calendar + Discourse
Post Event, registers the category in events_calendar_categories, and
writes a matching calendar_categories entry. Gated behind
enable_events_category_type_setup.

The Events tab exposes: default calendar view, display weekends, allowed
groups, event date format, topic sorting, and the upcoming events
sidebar link.

Framework support for per-category type settings:

- CategoriesController#create and #update now accept
category_type_settings, slicing the payload by each type's own
configuration_schema_keys(:category_settings). On create the slice
merges into Categories::Configure's category_configuration_values; on
update the controller iterates the category's attached types and calls
configure_category per type, so per-type fields persist on edit and a
type only ever sees its own keys.

- Categories::Types::Base#read_category_settings is a new extension
point types override to return current per-category values; the
CategorySerializer aggregates these as category_type_settings so the
edit form preloads stored values rather than schema defaults.

- Categories::Types::Base forwards :choices through the resolved schema
and lets a type override site setting :type and :choices when it wants a
bool to render as a labelled enum. configure_custom_fields and
configure_site_settings tolerate string or symbol keys.

- SchemaFormField gains enum (FormKit select) and group_list
(GroupChooser) branches. EditCategoryTypeSchemaFields renders a new form
section bound to a category_type_settings form object that iterates
schema.category_settings, gated by a hasCategorySettings getter. tabs.js
seeds the bucket from model.category_type_settings plus schema defaults;
Category#_categoryTypeSaveProperties sends it on save.

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2026-05-15 18:24:16 -03:00
..
admin FIX: Theme source updates are not atomic on import or migration failure (#39969) 2026-05-13 12:14:00 +01:00
users DEV: Fix invite-only OAuth signup bypass via non-invite origin routes (#38646) 2026-03-17 09:19:09 -05:00
about_controller.rb
application_controller.rb DEV: remove splash_screen site setting (#39758) 2026-05-06 10:22:33 -04:00
associated_groups_controller.rb
badges_controller.rb FIX: Non-listable and disabled badges exposed via XHR JSON requests (#37869) 2026-02-17 16:17:01 +11:00
bookmarks_controller.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
bootstrap_controller.rb DEV: Refactor plugin JS handling (#37763) 2026-02-19 12:24:04 +00:00
calendar_subscriptions_controller.rb FEATURE: Add calendar subscription URLs to user preferences (#38598) 2026-03-17 10:28:20 -03:00
categories_controller.rb FEATURE: Add "Events" category type for Calendar plugin (#39727) 2026-05-15 18:24:16 -03:00
clicks_controller.rb
composer_controller.rb FIX: Suppress composer mention warning for AI bot users (#39986) 2026-05-13 18:44:14 +02:00
composer_messages_controller.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
dev_mode_controller.rb DEV: Add /dev-mode endpoint for MiniProfiler auth cookie (#37027) 2026-01-12 10:01:20 +08:00
directory_columns_controller.rb
directory_items_controller.rb SECURITY: exclude_groups enables private group membership inference without authorization 2026-03-19 15:21:28 +00:00
do_not_disturb_controller.rb
drafts_controller.rb DEV: Expand top_tags, topic.tags, etc, to return an array of tag objects instead of tag names (#36678) 2026-02-02 10:03:02 +08:00
edit_directory_columns_controller.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
email_controller.rb FEATURE: implement RFC 8058 for email unsubscribe (#33392) 2025-07-01 11:01:13 +10:00
embed_controller.rb DEV: Gate Reply-count endpoint for non-public embedded topics (#38498) 2026-03-11 07:39:00 -07:00
emojis_controller.rb FEATURE: Locale-specific emoji search aliases (#39089) 2026-04-06 14:08:46 -03:00
exceptions_controller.rb
export_csv_controller.rb SECURITY: Prevent moderators from exporting admin-only reports via CSV 2026-03-31 15:12:45 +01:00
extra_locales_controller.rb DEV: Refactor locale bundle loading (#37114) 2026-01-16 11:45:14 +00:00
finish_installation_controller.rb FIX: Redirect to wizard when setting up new instance using Discourse ID (#36993) 2026-01-07 10:19:17 -05:00
form_templates_controller.rb FIX: Form templates page returning 500 error (#39799) 2026-05-06 18:53:52 +02:00
forums_controller.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
groups_controller.rb UX: Introduce anonymous and logged_in_users auto groups (#39516) 2026-05-06 10:35:52 +10:00
hashtags_controller.rb
highlight_js_controller.rb FEATURE: User fields required for existing users - Part 2 (#27172) 2024-06-25 19:32:18 +08:00
home_page_controller.rb DEV: Show login-required splash in root route (take 2) (#32629) 2025-05-14 11:25:43 -04:00
inline_onebox_controller.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
invites_controller.rb SECURITY: Gate staged user fields on email verification 2026-03-31 15:12:45 +01:00
list_controller.rb FIX: Enforce group PM visibility checks on new/unread list routes (#39992) 2026-05-13 15:15:18 -03:00
metadata_controller.rb DEV: Fix assigned but unused variable Prism warnings (#39436) 2026-04-22 12:42:14 +02:00
nested_topics_controller.rb FIX: Scope nested topic activity log with guardian properly (#39754) 2026-05-05 11:36:07 -05:00
new_invite_controller.rb FEATURE: Add invite link to the sidebar (#29448) 2024-10-30 05:31:14 +03:00
new_topic_controller.rb
notifications_controller.rb FIX: Hide badge notifications for disabled badges or when badges are disabled (#36987) 2026-01-07 15:28:43 +08:00
offline_controller.rb FEATURE: User fields required for existing users - Part 2 (#27172) 2024-06-25 19:32:18 +08:00
onebox_controller.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
permalinks_controller.rb SECURITY: prevent permalink redirects from leaking restricted slugs 2026-01-28 17:11:14 +00:00
post_action_users_controller.rb UX: Ignored users reactions/likes should not show up (#39672) 2026-05-11 15:32:29 -03:00
post_actions_controller.rb SECURITY: fix is_warning type coercion bypass in PostActionsController 2026-03-19 15:21:28 +00:00
post_localizations_controller.rb FIX: Also check if user can see post or topic prior to letting them localize it (#36749) 2025-12-18 02:12:58 +08:00
post_readers_controller.rb SECURITY: Missing post-level authorization allows whisper metadata disclosure 2026-03-31 15:12:45 +01:00
posts_controller.rb UX: Ignored users reactions/likes should not show up (#39672) 2026-05-11 15:32:29 -03:00
presence_controller.rb FIX: improve "read only" modes (#33521) 2025-07-10 09:08:00 +02:00
published_pages_controller.rb FIX: ensures only staff can check slugs (#37846) 2026-02-16 18:23:46 +01:00
push_notification_controller.rb
qunit_controller.rb DEV: Refactor plugin JS handling (#37763) 2026-02-19 12:24:04 +00:00
reviewable_claimed_topics_controller.rb DEV: Convert ReviewableClaimedTopicsController#destroy response from 403 to 404 (#38339) 2026-03-06 15:39:51 -06:00
reviewable_notes_controller.rb SECURITY: scope reviewable notes to user-visible reviewables 2026-02-26 12:22:54 +00:00
reviewables_controller.rb SECURITY: XSS in review queue via highlightWatchedWords 2026-03-19 15:21:28 +00:00
robots_txt_controller.rb DEV: Update link to comment in robots.txt as 'allow' is allowed (#33227) 2025-06-18 13:30:26 +08:00
safe_mode_controller.rb FIX: Set X-Robots-Tag header to prevent indexing of /safe-mode (#32329) 2025-04-16 16:51:32 +10:00
search_controller.rb FIX: exclude 't' shortcut from min length bypass (#37440) 2026-02-05 06:58:19 +11:00
session_controller.rb FEATURE: Allow passkeys to satisfy 2FA on /session/2fa (#39674) 2026-05-06 14:47:01 -03:00
sidebar_sections_controller.rb FIX: raise 404 when sidebar section doesn't exist (#37675) 2026-02-10 15:47:49 +01:00
similar_topics_controller.rb FEATURE: First iteration of nested replies (#38888) 2026-04-16 08:06:44 -05:00
site_controller.rb SECURITY: Preload data only when rendering application layout 2025-02-04 13:32:30 -03:00
sitemap_controller.rb
slugs_controller.rb
static_controller.rb DEV: Move 4 upcoming changes to stable (#39066) 2026-04-07 10:05:49 +10:00
steps_controller.rb UX: One step wizard (#36082) 2025-11-25 13:35:32 -05:00
stylesheets_controller.rb DEV: Public color_scheme requests can disclose non-user-selectable theme color definitions and raw SCSS (#38497) 2026-03-11 07:56:27 -07:00
svg_sprite_controller.rb DEV: Update rubocop-discourse to 3.13 and autofix issues (#35073) 2025-10-06 16:11:01 +02:00
tag_groups_controller.rb FIX: Failed updates in tag group controller would be logged (#38333) 2026-03-06 17:11:12 -03:00
tag_localizations_controller.rb FEATURE: Introduce tag localizations with API, without UI yet (#36754) 2025-12-18 18:25:58 +08:00
tags_controller.rb FIX: Numeric-tag fallback disables canonical redirect on slug-bearing routes (#39984) 2026-05-13 14:43:35 -04:00
test_requests_controller.rb DEV: Add a user agent to all HTTP requests that Discourse makes. (#31555) 2025-03-03 16:32:25 +11:00
theme_javascripts_controller.rb DEV: Manually fix Rails/UnusedRenderContent offenses (#34418) 2025-08-22 11:42:12 +02:00
topic_localizations_controller.rb UX: Use inline title editor instead of composer when editing translation (#36847) 2025-12-24 00:56:36 +08:00
topic_view_stats_controller.rb FEATURE: topic_view_stats table with daily fidelity (#27197) 2024-05-27 15:25:32 +10:00
topics_controller.rb FIX: Single-topic convert API returns success when the new recipient-cap guard blocks conversion (#39933) 2026-05-12 14:32:48 -05:00
uploads_controller.rb DEV: Silence expected error/debug output in system specs (#39164) 2026-04-13 13:59:41 +02:00
user_actions_controller.rb SECURITY: Enforce Guardian checks in UserActionsController#show 2026-03-19 15:21:28 +00:00
user_api_key_clients_controller.rb FIX: Empty-scopes bypass allows untrusted client registration and downstream scope/redirect policy bypass (#37855) 2026-02-17 12:39:09 +11:00
user_api_keys_controller.rb FIX: rescue OpenSSL::PKey::RSAError in UserApiKeysController (#39889) 2026-05-11 14:57:38 -04:00
user_avatars_controller.rb DEV: Don't try to proxy avatars in test env (#40047) 2026-05-15 11:34:39 +02:00
user_badges_controller.rb FIX: enforces logged in, in badges actions (#37666) 2026-02-10 12:00:56 +01:00
user_status_controller.rb
users_controller.rb FIX: Don't allow arbitrary values for user field enums on signup (#40018) 2026-05-14 10:50:35 +08:00
users_email_controller.rb FIX: enforces login for create in user emails controller (#37770) 2026-02-12 17:10:43 +01:00
webhooks_controller.rb SECURITY: harden webooks endpoints 2026-02-26 12:22:54 +00:00
wizard_controller.rb