Add admin ability to remove an user's header image (#9495)
* Fix markup in admin/accounts/:id table for avatar * Add admin ability to remove an user's header image
This commit is contained in:
		
							parent
							
								
									720daa8143
								
							
						
					
					
						commit
						cf6ee4ff24
					
				
					 5 changed files with 26 additions and 3 deletions
				
			
		| 
						 | 
					@ -2,7 +2,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
module Admin
 | 
					module Admin
 | 
				
			||||||
  class AccountsController < BaseController
 | 
					  class AccountsController < BaseController
 | 
				
			||||||
    before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :enable, :disable, :memorialize]
 | 
					    before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload, :remove_avatar, :remove_header, :enable, :disable, :memorialize]
 | 
				
			||||||
    before_action :require_remote_account!, only: [:subscribe, :unsubscribe, :redownload]
 | 
					    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, :disable, :memorialize]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -71,6 +71,17 @@ module Admin
 | 
				
			||||||
      redirect_to admin_account_path(@account.id)
 | 
					      redirect_to admin_account_path(@account.id)
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def remove_header
 | 
				
			||||||
 | 
					      authorize @account, :remove_header?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      @account.header = nil
 | 
				
			||||||
 | 
					      @account.save!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      log_action :remove_header, @account.user
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      redirect_to admin_account_path(@account.id)
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private
 | 
					    private
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def set_account
 | 
					    def set_account
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -92,7 +92,7 @@ module Admin::ActionLogsHelper
 | 
				
			||||||
      opposite_verbs?(log) ? 'negative' : 'positive'
 | 
					      opposite_verbs?(log) ? 'negative' : 'positive'
 | 
				
			||||||
    when :update, :reset_password, :disable_2fa, :memorialize, :change_email
 | 
					    when :update, :reset_password, :disable_2fa, :memorialize, :change_email
 | 
				
			||||||
      'neutral'
 | 
					      'neutral'
 | 
				
			||||||
    when :demote, :silence, :disable, :suspend, :remove_avatar, :reopen
 | 
					    when :demote, :silence, :disable, :suspend, :remove_avatar, :remove_header, :reopen
 | 
				
			||||||
      'negative'
 | 
					      'negative'
 | 
				
			||||||
    when :destroy
 | 
					    when :destroy
 | 
				
			||||||
      opposite_verbs?(log) ? 'positive' : 'negative'
 | 
					      opposite_verbs?(log) ? 'positive' : 'negative'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -33,6 +33,10 @@ class AccountPolicy < ApplicationPolicy
 | 
				
			||||||
    staff?
 | 
					    staff?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  def remove_header?
 | 
				
			||||||
 | 
					    staff?
 | 
				
			||||||
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def subscribe?
 | 
					  def subscribe?
 | 
				
			||||||
    admin?
 | 
					    admin?
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -16,11 +16,18 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      %tr
 | 
					      %tr
 | 
				
			||||||
        %th= t('admin.accounts.avatar')
 | 
					        %th= t('admin.accounts.avatar')
 | 
				
			||||||
        %th
 | 
					        %td
 | 
				
			||||||
          = link_to @account.avatar.url(:original) do
 | 
					          = link_to @account.avatar.url(:original) do
 | 
				
			||||||
            = image_tag @account.avatar.url(:original), alt: '', width: 40, height: 40, class: 'avatar'
 | 
					            = image_tag @account.avatar.url(:original), alt: '', width: 40, height: 40, class: 'avatar'
 | 
				
			||||||
          - if @account.local? && @account.avatar?
 | 
					          - if @account.local? && @account.avatar?
 | 
				
			||||||
            = table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, @account)
 | 
					            = table_link_to 'trash', t('admin.accounts.remove_avatar'), remove_avatar_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_avatar, @account)
 | 
				
			||||||
 | 
					      %tr
 | 
				
			||||||
 | 
					        %th= t('admin.accounts.header')
 | 
				
			||||||
 | 
					        %td
 | 
				
			||||||
 | 
					          = link_to @account.header.url(:original) do
 | 
				
			||||||
 | 
					            = image_tag @account.header.url(:original), alt: '', width: 128, height: 40, class: 'header'
 | 
				
			||||||
 | 
					          - if @account.local? && @account.header?
 | 
				
			||||||
 | 
					            = table_link_to 'trash', t('admin.accounts.remove_header'), remove_header_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:remove_header, @account)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      - if @account.local?
 | 
					      - if @account.local?
 | 
				
			||||||
        %tr
 | 
					        %tr
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -176,6 +176,7 @@ Rails.application.routes.draw do
 | 
				
			||||||
        post :disable
 | 
					        post :disable
 | 
				
			||||||
        post :redownload
 | 
					        post :redownload
 | 
				
			||||||
        post :remove_avatar
 | 
					        post :remove_avatar
 | 
				
			||||||
 | 
					        post :remove_header
 | 
				
			||||||
        post :memorialize
 | 
					        post :memorialize
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue