From b8299a2710b0a60bf49d84a9b078f315fd045ca3 Mon Sep 17 00:00:00 2001 From: Neil Lalonde Date: Thu, 14 Jan 2016 15:05:11 -0500 Subject: [PATCH] log when staff blocks/unblocks someone --- app/models/user_history.rb | 8 ++++++-- app/services/staff_action_logger.rb | 16 ++++++++++++++++ app/services/user_blocker.rb | 2 ++ config/locales/client.en.yml | 2 ++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/models/user_history.rb b/app/models/user_history.rb index 8382c9a6c9b..252b5cc5b26 100644 --- a/app/models/user_history.rb +++ b/app/models/user_history.rb @@ -44,7 +44,9 @@ class UserHistory < ActiveRecord::Base change_category_settings: 26, delete_category: 27, create_category: 28, - change_site_text: 29) + change_site_text: 29, + block_user: 30, + unblock_user: 31) end # Staff actions is a subset of all actions, used to audit actions taken by staff users. @@ -70,7 +72,9 @@ class UserHistory < ActiveRecord::Base :reviewed_post, :change_category_settings, :delete_category, - :create_category] + :create_category, + :block_user, + :unblock_user] end def self.staff_action_ids diff --git a/app/services/staff_action_logger.rb b/app/services/staff_action_logger.rb index c0766551024..69acc451640 100644 --- a/app/services/staff_action_logger.rb +++ b/app/services/staff_action_logger.rb @@ -280,6 +280,22 @@ class StaffActionLogger })) end + def log_block_user(user, opts={}) + raise Discourse::InvalidParameters.new(:user) unless user + UserHistory.create( params(opts).merge({ + action: UserHistory.actions[:block_user], + target_user_id: user.id + })) + end + + def log_unblock_user(user, opts={}) + raise Discourse::InvalidParameters.new(:user) unless user + UserHistory.create( params(opts).merge({ + action: UserHistory.actions[:unblock_user], + target_user_id: user.id + })) + end + private def params(opts=nil) diff --git a/app/services/user_blocker.rb b/app/services/user_blocker.rb index 9a8dd749356..66bb7820d23 100644 --- a/app/services/user_blocker.rb +++ b/app/services/user_blocker.rb @@ -18,6 +18,7 @@ class UserBlocker @user.blocked = true if @user.save SystemMessage.create(@user, @opts[:message] || :blocked_by_staff) + StaffActionLogger.new(@by_user).log_block_user(@user) if @by_user end else false @@ -34,6 +35,7 @@ class UserBlocker @user.blocked = false if @user.save SystemMessage.create(@user, :unblocked) + StaffActionLogger.new(@by_user).log_unblock_user(@user) if @by_user end end diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index d39f76dfabc..fadc6ab72e9 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -2280,6 +2280,8 @@ en: change_category_settings: "change category settings" delete_category: "delete category" create_category: "create category" + block_user: "block user" + unblock_user: "unblock user" screened_emails: title: "Screened Emails" description: "When someone tries to create a new account, the following email addresses will be checked and the registration will be blocked, or some other action performed."