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]
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
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'
staff?
end
+ def remove_header?
+ staff?
+ end
+
def subscribe?
admin?
end
%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
post :disable
post :redownload
post :remove_avatar
+ post :remove_header
post :memorialize
end