mirror of
https://github.com/discourse/discourse.git
synced 2025-06-07 23:54:41 +08:00
FIX: create UserHistory only when setting changed (#32075)
Do not create UserHistory when new value is same as the old one. It is even more important now, when we have bulk save option.
This commit is contained in:

committed by
GitHub

parent
c4502b31e4
commit
377a6554b9
@ -525,6 +525,7 @@ module SiteSettingExtension
|
|||||||
def set_and_log(name, value, user = Discourse.system_user, detailed_message = nil)
|
def set_and_log(name, value, user = Discourse.system_user, detailed_message = nil)
|
||||||
if has_setting?(name)
|
if has_setting?(name)
|
||||||
prev_value = public_send(name)
|
prev_value = public_send(name)
|
||||||
|
return if prev_value == value
|
||||||
set(name, value)
|
set(name, value)
|
||||||
# Logging via the rails console is already handled in add_override!
|
# Logging via the rails console is already handled in add_override!
|
||||||
log(name, value, prev_value, user, detailed_message) unless defined?(Rails::Console)
|
log(name, value, prev_value, user, detailed_message) unless defined?(Rails::Console)
|
||||||
|
@ -601,6 +601,10 @@ RSpec.describe SiteSettingExtension do
|
|||||||
expect(UserHistory.last.new_value).to eq("Discourse v2")
|
expect(UserHistory.last.new_value).to eq("Discourse v2")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "does not create an entry in the staff action logs when new value is the same" do
|
||||||
|
expect { settings.set_and_log("title", "Discourse v1") }.not_to change { UserHistory.count }
|
||||||
|
end
|
||||||
|
|
||||||
context "when a detailed message is provided" do
|
context "when a detailed message is provided" do
|
||||||
let(:message) { "We really need to do this, see https://meta.discourse.org/t/123" }
|
let(:message) { "We really need to do this, see https://meta.discourse.org/t/123" }
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user