Add an event that is triggered when a user is anonymized

This commit is contained in:
Robin Ward
2018-05-02 12:25:06 -04:00
parent d7b1a83e94
commit 05dddcb2fd
2 changed files with 20 additions and 0 deletions

View File

@ -70,6 +70,8 @@ class UserAnonymizer
@user_history = UserHistory.create(history_details) @user_history = UserHistory.create(history_details)
end end
DiscourseEvent.trigger(:user_anonymized, user: @user, opts: @opts)
@user @user
end end

View File

@ -4,6 +4,24 @@ describe UserAnonymizer do
let(:admin) { Fabricate(:admin) } let(:admin) { Fabricate(:admin) }
describe "event" do
let(:user) { Fabricate(:user, username: "edward") }
subject(:make_anonymous) { described_class.make_anonymous(user, admin, anonymize_ip: '2.2.2.2') }
it "triggers the event" do
events = DiscourseEvent.track_events do
make_anonymous
end
anon_event = events.detect { |e| e[:event_name] == :user_anonymized }
expect(anon_event).to be_present
params_hash = anon_event[:params][0]
expect(params_hash[:user]).to eq(user)
expect(params_hash[:opts][:anonymize_ip]).to eq('2.2.2.2')
end
end
describe "make_anonymous" do describe "make_anonymous" do
let(:user) { Fabricate(:user, username: "edward") } let(:user) { Fabricate(:user, username: "edward") }
subject(:make_anonymous) { described_class.make_anonymous(user, admin) } subject(:make_anonymous) { described_class.make_anonymous(user, admin) }