Add explit admin actions to (re)subscribe/unsubscribe remote accounts (#3640)
* Add explit admin actions to (re)subscribe/unsubscribe remote accounts and re-download avatar/header * Improve how admin NSFW toggle looks
This commit is contained in:
@ -2,16 +2,43 @@
|
||||
|
||||
module Admin
|
||||
class AccountsController < BaseController
|
||||
before_action :set_account, only: [:show, :subscribe, :unsubscribe, :redownload]
|
||||
before_action :require_remote_account!, only: [:subscribe, :unsubscribe, :redownload]
|
||||
|
||||
def index
|
||||
@accounts = filtered_accounts.page(params[:page])
|
||||
end
|
||||
|
||||
def show
|
||||
@account = Account.find(params[:id])
|
||||
def show; end
|
||||
|
||||
def subscribe
|
||||
Pubsubhubbub::SubscribeWorker.perform_async(@account.id)
|
||||
redirect_to admin_account_path(@account.id)
|
||||
end
|
||||
|
||||
def unsubscribe
|
||||
UnsubscribeService.new.call(@account)
|
||||
redirect_to admin_account_path(@account.id)
|
||||
end
|
||||
|
||||
def redownload
|
||||
@account.avatar = @account.avatar_remote_url
|
||||
@account.header = @account.header_remote_url
|
||||
@account.save!
|
||||
|
||||
redirect_to admin_account_path(@account.id)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def set_account
|
||||
@account = Account.find(params[:id])
|
||||
end
|
||||
|
||||
def require_remote_account!
|
||||
redirect_to admin_account_path(@account.id) if @account.local?
|
||||
end
|
||||
|
||||
def filtered_accounts
|
||||
AccountFilter.new(filter_params).results
|
||||
end
|
||||
|
@ -245,19 +245,13 @@
|
||||
|
||||
.report-status__actions {
|
||||
flex: 0 0 auto;
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
.nsfw-button {
|
||||
color: $white;
|
||||
font-size: 11px;
|
||||
width: 11px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.trash-button {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
.icon-button {
|
||||
font-size: 24px;
|
||||
width: 24px;
|
||||
text-align: center;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
@ -67,11 +67,17 @@
|
||||
%th= t('.targeted_reports')
|
||||
%td= link_to pluralize(@account.targeted_reports.count, t('.report')), admin_reports_path(target_account_id: @account.id)
|
||||
|
||||
- if @account.local?
|
||||
%div{ style: 'float: right' }
|
||||
|
||||
%div{ style: 'float: right' }
|
||||
- if @account.local?
|
||||
= link_to t('admin.accounts.reset_password'), admin_account_reset_path(@account.id), method: :create, class: 'button'
|
||||
- if @account.user&.otp_required_for_login?
|
||||
= link_to t('admin.accounts.disable_two_factor_authentication'), admin_user_two_factor_authentication_path(@account.user.id), method: :delete, class: 'button'
|
||||
- else
|
||||
= link_to @account.subscribed? ? t('admin.accounts.resubscribe') : t('admin.accounts.subscribe'), subscribe_admin_account_path(@account.id), method: :post, class: 'button'
|
||||
- if @account.subscribed?
|
||||
= link_to t('admin.accounts.unsubscribe'), unsubscribe_admin_account_path(@account.id), method: :post, class: 'button negative'
|
||||
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button'
|
||||
|
||||
%div{ style: 'float: left' }
|
||||
- if @account.silenced?
|
||||
|
@ -25,8 +25,8 @@
|
||||
.entry= render partial: 'stream_entries/simple_status', locals: { status: status }
|
||||
.report-status__actions
|
||||
- unless status.media_attachments.empty?
|
||||
= link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :patch, class: 'nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do
|
||||
= t("admin.reports.nsfw.#{!status.sensitive}")
|
||||
= link_to admin_report_reported_status_path(@report, status, status: { sensitive: !status.sensitive }), method: :patch, class: 'icon-button nsfw-button', title: t("admin.reports.nsfw.#{!status.sensitive}") do
|
||||
= fa_icon status.sensitive? ? 'eye' : 'eye-slash'
|
||||
= link_to admin_report_reported_status_path(@report, status), method: :delete, class: 'icon-button trash-button', title: t('admin.reports.delete'), data: { confirm: t('admin.reports.are_you_sure') } do
|
||||
= fa_icon 'trash'
|
||||
|
||||
|
Reference in New Issue
Block a user