Add moderation warnings (#9519)
* Add moderation warnings Replace individual routes for disabling, silencing, and suspending a user, as well as the report update route, with a unified account action controller that allows you to select an action (none, disable, silence, suspend) as well as whether it should generate an e-mail notification with optional custom text. That notification, with the optional custom text, is saved as a warning. Additionally, there are warning presets you can configure to save time when performing the above. * Use Account#local_username_and_domain
This commit is contained in:
		@@ -2,9 +2,9 @@
 | 
			
		||||
 | 
			
		||||
module Admin
 | 
			
		||||
  class AccountsController < BaseController
 | 
			
		||||
    before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :remove_header, :enable, :disable, :memorialize]
 | 
			
		||||
    before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :remove_header, :enable, :memorialize]
 | 
			
		||||
    before_action :require_remote_account!, only: [:subscribe, :unsubscribe, :redownload]
 | 
			
		||||
    before_action :require_local_account!, only: [:enable, :disable, :memorialize]
 | 
			
		||||
    before_action :require_local_account!, only: [:enable, :memorialize]
 | 
			
		||||
 | 
			
		||||
    def index
 | 
			
		||||
      authorize :account, :index?
 | 
			
		||||
@@ -13,8 +13,10 @@ module Admin
 | 
			
		||||
 | 
			
		||||
    def show
 | 
			
		||||
      authorize @account, :show?
 | 
			
		||||
 | 
			
		||||
      @account_moderation_note = current_account.account_moderation_notes.new(target_account: @account)
 | 
			
		||||
      @moderation_notes = @account.targeted_moderation_notes.latest
 | 
			
		||||
      @moderation_notes        = @account.targeted_moderation_notes.latest
 | 
			
		||||
      @warnings                = @account.targeted_account_warnings.latest.custom
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def subscribe
 | 
			
		||||
@@ -43,10 +45,17 @@ module Admin
 | 
			
		||||
      redirect_to admin_account_path(@account.id)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def disable
 | 
			
		||||
      authorize @account.user, :disable?
 | 
			
		||||
      @account.user.disable!
 | 
			
		||||
      log_action :disable, @account.user
 | 
			
		||||
    def unsilence
 | 
			
		||||
      authorize @account, :unsilence?
 | 
			
		||||
      @account.unsilence!
 | 
			
		||||
      log_action :unsilence, @account
 | 
			
		||||
      redirect_to admin_account_path(@account.id)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def unsuspend
 | 
			
		||||
      authorize @account, :unsuspend?
 | 
			
		||||
      @account.unsuspend!
 | 
			
		||||
      log_action :unsuspend, @account
 | 
			
		||||
      redirect_to admin_account_path(@account.id)
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user