aboutsummaryrefslogtreecommitdiff
path: root/app/models/admin/account_action.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/admin/account_action.rb')
-rw-r--r--app/models/admin/account_action.rb15
1 files changed, 12 insertions, 3 deletions
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index b30a82369..bf222391f 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -8,6 +8,7 @@ class Admin::AccountAction
TYPES = %w(
none
disable
+ sensitive
silence
suspend
).freeze
@@ -64,6 +65,8 @@ class Admin::AccountAction
case type
when 'disable'
handle_disable!
+ when 'sensitive'
+ handle_sensitive!
when 'silence'
handle_silence!
when 'suspend'
@@ -109,6 +112,12 @@ class Admin::AccountAction
target_account.user&.disable!
end
+ def handle_sensitive!
+ authorize(target_account, :sensitive?)
+ log_action(:sensitive, target_account)
+ target_account.sensitize!
+ end
+
def handle_silence!
authorize(target_account, :silence?)
log_action(:silence, target_account)
@@ -118,7 +127,7 @@ class Admin::AccountAction
def handle_suspend!
authorize(target_account, :suspend?)
log_action(:suspend, target_account)
- target_account.suspend!
+ target_account.suspend!(origin: :local)
end
def text_for_warning
@@ -134,7 +143,7 @@ class Admin::AccountAction
end
def process_email!
- UserMailer.warning(target_account.user, warning, status_ids).deliver_now! if warnable?
+ UserMailer.warning(target_account.user, warning, status_ids).deliver_later! if warnable?
end
def warnable?
@@ -142,7 +151,7 @@ class Admin::AccountAction
end
def status_ids
- @report.status_ids if @report && include_statuses
+ report.status_ids if report && include_statuses
end
def reports