mirror of
https://github.com/discourse/discourse.git
synced 2025-06-04 23:36:11 +08:00
FIX: Update only present fields in request (#14310)
Some category fields were always updated, even if they were not present in the request. When this happened, these field were erased.
This commit is contained in:
@ -286,9 +286,13 @@ class CategoriesController < ApplicationController
|
||||
end
|
||||
|
||||
if SiteSetting.tagging_enabled
|
||||
params[:allowed_tags] ||= []
|
||||
params[:allowed_tag_groups] ||= []
|
||||
params[:required_tag_group_name] ||= ''
|
||||
params[:allowed_tags] = params[:allowed_tags].presence || [] if params[:allowed_tags]
|
||||
params[:allowed_tag_groups] = params[:allowed_tag_groups].presence || [] if params[:allowed_tag_groups]
|
||||
params[:required_tag_group_name] = params[:required_tag_group_name].presence || '' if params[:required_tag_group_name]
|
||||
end
|
||||
|
||||
if SiteSetting.enable_category_group_moderation?
|
||||
params[:reviewable_by_group_id] = Group.where(name: params[:reviewable_by_group_name]).pluck_first(:id) if params[:reviewable_by_group_name]
|
||||
end
|
||||
|
||||
result = params.permit(
|
||||
@ -327,14 +331,12 @@ class CategoriesController < ApplicationController
|
||||
:min_tags_from_required_group,
|
||||
:read_only_banner,
|
||||
:default_list_filter,
|
||||
:reviewable_by_group_id,
|
||||
custom_fields: [params[:custom_fields].try(:keys)],
|
||||
permissions: [*p.try(:keys)],
|
||||
allowed_tags: [],
|
||||
allowed_tag_groups: []
|
||||
allowed_tag_groups: [],
|
||||
)
|
||||
if SiteSetting.enable_category_group_moderation?
|
||||
result[:reviewable_by_group_id] = Group.find_by(name: params[:reviewable_by_group_name])&.id
|
||||
end
|
||||
|
||||
result
|
||||
end
|
||||
|
Reference in New Issue
Block a user