]> cat aescling's git repositories - mastodon.git/commitdiff
Add admin ability to remove an user's header image (#9495)
authorThibG <thib@sitedethib.com>
Tue, 11 Dec 2018 18:28:03 +0000 (19:28 +0100)
committerEugen Rochko <eugen@zeonfederated.com>
Tue, 11 Dec 2018 18:28:03 +0000 (19:28 +0100)
* Fix markup in admin/accounts/:id table for avatar

* Add admin ability to remove an user's header image

app/controllers/admin/accounts_controller.rb
app/helpers/admin/action_logs_helper.rb
app/policies/account_policy.rb
app/views/admin/accounts/show.html.haml
config/routes.rb

index f155543ce2333ee6202d555b1d3089ed0ca6045d..771302db8076b95bb9b0ddc8465db80a4440d2e7 100644 (file)
@@ -2,7 +2,7 @@
 
 module Admin
   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_local_account!, only: [:enable, :disable, :memorialize]
 
@@ -71,6 +71,17 @@ module Admin
       redirect_to admin_account_path(@account.id)
     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
 
     def set_account
index c28f0be6baef19449b1b4fa8c2121e1b4c61a3ff..68cf8c75ddae4b38e6023f1317ca702d7eaf9609 100644 (file)
@@ -92,7 +92,7 @@ module Admin::ActionLogsHelper
       opposite_verbs?(log) ? 'negative' : 'positive'
     when :update, :reset_password, :disable_2fa, :memorialize, :change_email
       'neutral'
-    when :demote, :silence, :disable, :suspend, :remove_avatar, :reopen
+    when :demote, :silence, :disable, :suspend, :remove_avatar, :remove_header, :reopen
       'negative'
     when :destroy
       opposite_verbs?(log) ? 'positive' : 'negative'
index efabe80d0d58bd357431f36aaab41041d450f343..07bae68efb875507671e931f3cee7c608bb15219 100644 (file)
@@ -33,6 +33,10 @@ class AccountPolicy < ApplicationPolicy
     staff?
   end
 
+  def remove_header?
+    staff?
+  end
+
   def subscribe?
     admin?
   end
index c1a5fc1bd39a9068ef4575a080720128666fc9d3..e9f765107814b89b9099a1b8a7fd4533e9646497 100644 (file)
 
       %tr
         %th= t('admin.accounts.avatar')
-        %th
+        %td
           = link_to @account.avatar.url(:original) do
             = image_tag @account.avatar.url(:original), alt: '', width: 40, height: 40, class: '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)
+      %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?
         %tr
index 2628684137129c43d8582b18a1ea36da90bc0cbc..4a0289465e98e1edb7e5441d0c5ad3cc22cfad95 100644 (file)
@@ -176,6 +176,7 @@ Rails.application.routes.draw do
         post :disable
         post :redownload
         post :remove_avatar
+        post :remove_header
         post :memorialize
       end