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:
ThibG 2018-12-11 19:28:03 +01:00 committed by Eugen Rochko
parent 720daa8143
commit cf6ee4ff24
5 changed files with 26 additions and 3 deletions

View File

@ -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

View File

@ -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'

View File

@ -33,6 +33,10 @@ class AccountPolicy < ApplicationPolicy
staff? staff?
end end
def remove_header?
staff?
end
def subscribe? def subscribe?
admin? admin?
end end

View File

@ -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

View File

@ -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