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 imageshrike
parent
720daa8143
commit
cf6ee4ff24
|
@ -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
|
||||
|
|
|
@ -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'
|
||||
|
|
|
@ -33,6 +33,10 @@ class AccountPolicy < ApplicationPolicy
|
|||
staff?
|
||||
end
|
||||
|
||||
def remove_header?
|
||||
staff?
|
||||
end
|
||||
|
||||
def subscribe?
|
||||
admin?
|
||||
end
|
||||
|
|
|
@ -16,11 +16,18 @@
|
|||
|
||||
%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
|
||||
|
|
|
@ -176,6 +176,7 @@ Rails.application.routes.draw do
|
|||
post :disable
|
||||
post :redownload
|
||||
post :remove_avatar
|
||||
post :remove_header
|
||||
post :memorialize
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in New Issue