add all `ActionLog`-able admin & moderator actions to logger
parent
234fae09ad
commit
0d17c2bf2e
|
@ -2,8 +2,10 @@
|
|||
|
||||
module AccountableConcern
|
||||
extend ActiveSupport::Concern
|
||||
include LogHelper
|
||||
|
||||
def log_action(action, target)
|
||||
Admin::ActionLog.create(account: current_account, action: action, target: target)
|
||||
user_friendly_action_log(current_account, action, target)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
module BangtagHelper
|
||||
include LogHelper
|
||||
|
||||
POLICIES = %w(silence unsilence suspend unsuspend force_unlisted allow_public force_sensitive allow_nonsensitive reset)
|
||||
EXCLUDED_DOMAINS = %w(tailma.ws monsterpit.net monsterpit.cloud monsterpit.gallery monsterpit.blog)
|
||||
|
||||
|
@ -15,11 +17,10 @@ module BangtagHelper
|
|||
|
||||
if policy == 'reset'
|
||||
Admin::ActionLog.create(account: @account, action: unsuspend, target: acct)
|
||||
Admin::ActionLog.create(account: @account, action: unsilence, target: acct)
|
||||
Admin::ActionLog.create(account: @account, action: allow_public, target: acct)
|
||||
Admin::ActionLog.create(account: @account, action: allow_nonsensitive, target: acct)
|
||||
user_friendly_action_log(@account, :unsuspend, acct)
|
||||
else
|
||||
Admin::ActionLog.create(account: @account, action: policy, target: acct)
|
||||
user_friendly_action_log(@account, policy.to_sym, acct)
|
||||
end
|
||||
|
||||
case policy
|
||||
|
@ -88,12 +89,14 @@ module BangtagHelper
|
|||
domain_block.save
|
||||
|
||||
Admin::ActionLog.create(account: @account, action: :create, target: domain_block)
|
||||
user_friendly_action_log(@account, :create, domain_block)
|
||||
BlockDomainService.new.call(domain_block)
|
||||
else
|
||||
domain_block = DomainBlock.find_by(domain: domain)
|
||||
return false if domain_block.nil?
|
||||
|
||||
Admin::ActionLog.create(account: @account, action: :destroy, target: domain_block)
|
||||
user_friendly_action_log(@account, :destroy, domain_block)
|
||||
UnblockDomainService.new.call(domain_block)
|
||||
end
|
||||
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
module LogHelper
|
||||
def user_friendly_action_log(source, action, target)
|
||||
source = source.username if source.is_a?(Account)
|
||||
|
||||
case action
|
||||
when :create
|
||||
if target.is_a? DomainBlock
|
||||
LogWorker.perform_async("\xf0\x9f\x9a\xab <#{source}> applied a #{target.severity}#{target.force_sensitive? ? " and force sensitive media" : ''}#{target.reject_media? ? " and reject media" : ''} policy on https://#{target.domain}\u200b.")
|
||||
elsif target.is_a? EmailDomainBlock
|
||||
LogWorker.perform_async("\u26d4 <#{source}> added a registration block on email domain '#{target.domain}'.")
|
||||
elsif target.is_a? CustomEmoji
|
||||
LogWorker.perform_async("\xf0\x9f\x98\xba <#{source}> added the '#{target.shortcode}' emoji. :#{target.shortcode}:")
|
||||
elsif target.is_a? AccountWarning
|
||||
LogWorker.perform_async("\xe2\x9a\xa0\xef\xb8\x8f <#{source}> sent someone an admin notice.")
|
||||
end
|
||||
when :destroy
|
||||
if target.is_a? DomainBlock
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 <#{source}> reset the policy on https://#{target.domain}\u200b.")
|
||||
elsif target.is_a? EmailDomainBlock
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 <#{source}> removed the registration block on email domain '#{target.domain}'.")
|
||||
elsif target.is_a? CustomEmoji
|
||||
LogWorker.perform_async("\xf0\x9f\x97\x91\xef\xb8\x8f <#{source}> removed the '#{target.shortcode}' emoji.")
|
||||
elsif target.is_a? Status
|
||||
LogWorker.perform_async("\xf0\x9f\x97\x91\xef\xb8\x8f <#{source}> removed post #{TagManager.instance.url_for(target)}\u200b.")
|
||||
end
|
||||
|
||||
when :update
|
||||
if target.is_a? Status
|
||||
LogWorker.perform_async("\xf0\x9f\x91\x81\xef\xb8\x8f <#{source}> changed visibility flags of post #{TagManager.instance.url_for(target)}\u200b.")
|
||||
elsif target.is_a? CustomEmoji
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x81 <#{source}> replaced the '#{target.shortcode}' emoji. :#{target.shortcode}:")
|
||||
end
|
||||
|
||||
when :enable
|
||||
if target.is_a? User
|
||||
LogWorker.perform_async("\xf0\x9f\x92\xa7 <#{source}> unfroze the account of <#{target.username}>.")
|
||||
elsif target.is_a? CustomEmoji
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 <#{source}> enabled the '#{target.shortcode}' emoji. :#{target.shortcode}:")
|
||||
end
|
||||
when :disable
|
||||
if target.is_a? User
|
||||
LogWorker.perform_async("\xe2\x9d\x84\xef\xb8\x8f <#{source}> froze the account of <#{target.username}>.")
|
||||
elsif target.is_a? CustomEmoji
|
||||
LogWorker.perform_async("\u26d4 <#{source}> disabled the '#{target.shortcode}' emoji.")
|
||||
end
|
||||
|
||||
when :force_sensitive
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x9e <#{source}> forced the media of <#{target.acct}> to be marked sensitive.")
|
||||
when :force_unlisted
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x89 <#{source}> forced the posts of <#{target.acct}> to be unlisted.")
|
||||
when :silence
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x87 <#{source}> silenced <#{target.acct}>'.")
|
||||
when :suspend
|
||||
LogWorker.perform_async("\u26d4 <#{source}> suspended <#{target.acct}>.")
|
||||
|
||||
when :allow_nonsensitive
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 <#{source}> allowed <#{target.acct}> to post media without a sensitive flag.")
|
||||
when :allow_public
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x8a <#{source}> allowed <#{target.acct}> to post with public visibility.")
|
||||
when :unsilence
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x8a <#{source}> unsilenced <#{target.acct}>.")
|
||||
when :unsuspend
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 <#{source}> unsuspended <#{target.acct}>.")
|
||||
|
||||
when :remove_avatar
|
||||
LogWorker.perform_async("\xf0\x9f\x97\x91\xef\xb8\x8f <#{source}> removed the avatar of <#{target.acct}>.")
|
||||
when :remove_header
|
||||
LogWorker.perform_async("\xf0\x9f\x97\x91\xef\xb8\x8f <#{source}> removed the profile header of <#{target.acct}>.")
|
||||
|
||||
when :resolve
|
||||
LogWorker.perform_async("\u2705 <#{source}> resolved report ##{target.id}.")
|
||||
when :reopen
|
||||
LogWorker.perform_async("\u2757 <#{source}> reopened report ##{target.id}.")
|
||||
when :assigned_to_self
|
||||
LogWorker.perform_async("\xf0\x9f\x91\x80 <#{source}> is resolving report ##{target.id}.")
|
||||
when :unassigned
|
||||
LogWorker.perform_async("\u274c <#{source}> is no longer assigned to report ##{target.id}.")
|
||||
|
||||
when :promote
|
||||
LogWorker.perform_async("\xf0\x9f\x94\xba <#{source}> upgraded a local account from #{target.role}.")
|
||||
when :demote
|
||||
LogWorker.perform_async("\xf0\x9f\x94\xbb <#{source}> downgraded a local account from #{target.role}.")
|
||||
|
||||
when :confirm
|
||||
LogWorker.perform_async("\u2705 <#{source}> manually confirmed a local account.")
|
||||
when :reset_password
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x81 <#{source}> manually reset a local account's password.")
|
||||
when :disable_2fa
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x81 <#{source}> manually reset a local account's 2-factor auth.")
|
||||
when :change_email
|
||||
LogWorker.perform_async("\xf0\x9f\x93\x9d <#{source}> manually changed a local account's email address.")
|
||||
|
||||
when :memorialize
|
||||
LogWorker.perform_async("\xf0\x9f\x8f\x85 <#{source}> memorialized an account.")
|
||||
end
|
||||
end
|
||||
end
|
|
@ -170,8 +170,10 @@ class Bangtags
|
|||
if emoji.id.nil?
|
||||
emoji.image = src_img
|
||||
emoji.save
|
||||
user_friendly_action_log(@account, :create, emoji)
|
||||
end
|
||||
when 'emoji'
|
||||
chunk = nil
|
||||
next if cmd[1].nil?
|
||||
shortcode = cmd[1]
|
||||
domain = (cmd[2].blank? ? nil : cmd[2].downcase)
|
||||
|
@ -186,6 +188,7 @@ class Bangtags
|
|||
unless theirs.nil?
|
||||
ours.image = theirs.image
|
||||
ours.save
|
||||
user_friendly_action_log(@account, :create, ours)
|
||||
end
|
||||
end
|
||||
when 'char'
|
||||
|
@ -306,6 +309,7 @@ class Bangtags
|
|||
if ours.id.nil?
|
||||
ours.image = theirs.image
|
||||
ours.save
|
||||
user_friendly_action_log(@account, :create, ours)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -332,6 +336,7 @@ class Bangtags
|
|||
if ours.id.nil?
|
||||
ours.image = theirs.image
|
||||
ours.save
|
||||
user_friendly_action_log(@account, :create, ours)
|
||||
end
|
||||
end
|
||||
when 'urls'
|
||||
|
@ -643,7 +648,7 @@ class Bangtags
|
|||
end
|
||||
end
|
||||
|
||||
chunk.gsub!("#\uf666!", '#!') unless chunk.blank?
|
||||
chunk.gsub!("#\uf666!", '#!') unless chunk.blank? || chunk.frozen?
|
||||
|
||||
if chunk.present? && @tf_cmds.present?
|
||||
@tf_cmds.each do |tf_cmd|
|
||||
|
|
|
@ -212,7 +212,6 @@ class Account < ApplicationRecord
|
|||
end
|
||||
|
||||
def force_unlisted!
|
||||
LogWorker.perform_async("\xf0\x9f\x93\xb5 Forced the media of account '#{@account.acct}' to be unlisted.")
|
||||
transaction do
|
||||
update!(force_unlisted: true)
|
||||
Status.where(account_id: id, visibility: :public).in_batches.update_all(visibility: :unlisted)
|
||||
|
@ -220,7 +219,6 @@ class Account < ApplicationRecord
|
|||
end
|
||||
|
||||
def force_sensitive!
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x9e Forced the media of account '#{@account.acct}' to be marked sensitive.")
|
||||
transaction do
|
||||
update!(force_sensitive: true)
|
||||
Status.where(account_id: id, sensitive: false).in_batches.update_all(sensitive: true)
|
||||
|
@ -228,7 +226,6 @@ class Account < ApplicationRecord
|
|||
end
|
||||
|
||||
def allow_public!
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 No longer forcing the media of account '#{@account.acct}' to be marked sensitive.")
|
||||
update!(force_unlisted: false)
|
||||
end
|
||||
|
||||
|
@ -243,12 +240,10 @@ class Account < ApplicationRecord
|
|||
def silence!(date = nil)
|
||||
date ||= Time.now.utc
|
||||
update!(silenced_at: date)
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x87 Silenced account '#{@account.acct}'.")
|
||||
end
|
||||
|
||||
def unsilence!
|
||||
update!(silenced_at: nil)
|
||||
LogWorker.perform_async("\xf0\x9f\x94\x8a Unsilenced account '#{@account.acct}'.")
|
||||
end
|
||||
|
||||
def suspended?
|
||||
|
|
|
@ -5,7 +5,6 @@ class BlockDomainService < BaseService
|
|||
|
||||
def call(domain_block)
|
||||
@domain_block = domain_block
|
||||
LogWorker.perform_async("\xf0\x9f\x9a\xab Applying #{@domain_block.severity}#{@domain_block.force_sensitive? ? " and force sensitive media" : ''}#{@domain_block.reject_media? ? " and reject media" : ''} policy on domain '#{blocked_domain}'.")
|
||||
process_domain_block!
|
||||
end
|
||||
|
||||
|
|
|
@ -40,8 +40,6 @@ class SuspendAccountService < BaseService
|
|||
@account = account
|
||||
@options = options
|
||||
|
||||
LogWorker.perform_async("\xf0\x9f\x97\x91\xef\xb8\x8f Suspending account '#{@account.acct}'.")
|
||||
|
||||
reject_follows!
|
||||
purge_user!
|
||||
purge_profile!
|
||||
|
|
|
@ -5,7 +5,6 @@ class UnblockDomainService < BaseService
|
|||
|
||||
def call(domain_block)
|
||||
@domain_block = domain_block
|
||||
LogWorker.perform_async("\xf0\x9f\x86\x97 Reset policy on domain '#{@domain_block.domain}'.")
|
||||
process_retroactive_updates
|
||||
domain_block.destroy
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue