diff --git a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs index 594dd18a314..399a824d623 100644 --- a/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs +++ b/app/assets/javascripts/admin/templates/logs/staff-action-logs.hbs @@ -32,7 +32,7 @@ {{else}} {{i18n "admin.logs.staff_actions.filter"}} {{combo-box content=userHistoryActions value=filterActionId none="admin.logs.staff_actions.all"}} {{/if}} - + {{d-button action="exportStaffActionLogs" label="admin.export_csv.button_text" icon="download"}}
@@ -57,8 +57,14 @@
- {{#link-to 'adminUser' item.acting_user}}{{avatar item.acting_user imageSize="tiny"}}{{/link-to}} - {{item.acting_user.username}} + {{#if item.acting_user}} + {{#link-to 'adminUser' item.acting_user}}{{avatar item.acting_user imageSize="tiny"}}{{/link-to}} + {{item.acting_user.username}} + {{else}} + + {{d-icon "trash-o"}} + + {{/if}}
diff --git a/app/assets/stylesheets/common/admin/staff_logs.scss b/app/assets/stylesheets/common/admin/staff_logs.scss index 585b848e93d..d20eef94dbb 100644 --- a/app/assets/stylesheets/common/admin/staff_logs.scss +++ b/app/assets/stylesheets/common/admin/staff_logs.scss @@ -163,6 +163,9 @@ a:first-of-type { margin-right: 0.25em; } + .deleted-user { + font-size: $font-up-2; + } } .created_at { text-align: center; diff --git a/app/services/user_destroyer.rb b/app/services/user_destroyer.rb index 956171593b8..adba7e45457 100644 --- a/app/services/user_destroyer.rb +++ b/app/services/user_destroyer.rb @@ -49,6 +49,17 @@ class UserDestroyer post_action.remove_act!(Discourse.system_user) end + # Add info about the user to staff action logs + UserHistory.staff_action_records( + Discourse.system_user, acting_user: user.username + ).each do |log| + log.details ||= '' + log.details = (log.details.split("\n") + + ["user_id: #{user.id}", "username: #{user.username}"] + ).join("\n") + log.save! + end + # keep track of emails used user_emails = user.user_emails.pluck(:email) diff --git a/spec/services/user_destroyer_spec.rb b/spec/services/user_destroyer_spec.rb index bb526d40400..fdfa12b39f8 100644 --- a/spec/services/user_destroyer_spec.rb +++ b/spec/services/user_destroyer_spec.rb @@ -360,6 +360,28 @@ describe UserDestroyer do }.to change { User.count }.by(-1) end end + + context 'user has staff action logs' do + before do + logger = StaffActionLogger.new(user) + logger.log_site_setting_change( + 'site_description', + 'Our friendly community', + 'My favourite community' + ) + end + + it "should keep the staff action log and add the username" do + username = user.username + log = UserHistory.staff_action_records( + Discourse.system_user, + acting_user: username + ).to_a[0] + UserDestroyer.new(admin).destroy(user, delete_posts: true) + log.reload + expect(log.details).to include(username) + end + end end end