add synchronize button to account manager

master
multiple creatures 2019-12-10 01:26:00 -06:00
parent 882d089dd0
commit 5af281b057
5 changed files with 20 additions and 3 deletions

View File

@ -2,8 +2,8 @@
module Admin
class AccountsController < BaseController
before_action :set_account, only: [:show, :redownload, :remove_avatar, :remove_header, :enable, :mark_known, :mark_unknown, :allow_public, :allow_nonsensitive, :unsilence, :unsuspend, :memorialize, :approve, :reject]
before_action :require_remote_account!, only: [:redownload]
before_action :set_account, only: [:show, :redownload, :remove_avatar, :remove_header, :enable, :mark_known, :mark_unknown, :allow_public, :allow_nonsensitive, :unsilence, :unsuspend, :memorialize, :approve, :reject, :sync]
before_action :require_remote_account!, only: [:redownload, :sync]
before_action :require_local_account!, only: [:enable, :memorialize, :approve, :reject]
def index
@ -110,6 +110,16 @@ module Admin
redirect_to admin_account_path(@account.id)
end
def sync
authorize @account, :sync?
@account.update!(last_webfingered_at: nil)
ResolveAccountService.new.call(@account)
SyncRemoteAccountWorker.perform_async(@account.id)
redirect_to admin_account_path(@account.id)
end
def remove_avatar
authorize @account, :remove_avatar?

View File

@ -54,7 +54,11 @@ class AccountPolicy < ApplicationPolicy
end
def redownload?
admin?
staff?
end
def sync?
staff?
end
def remove_avatar?

View File

@ -191,6 +191,7 @@
= link_to t('admin.accounts.memorialize'), memorialize_admin_account_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:memorialize, @account)
- else
= link_to t('admin.accounts.redownload'), redownload_admin_account_path(@account.id), method: :post, class: 'button' if can?(:redownload, @account)
= link_to t('admin.accounts.sync'), sync_admin_account_path(@account.id), method: :post, class: 'button' if can?(:sync, @account)
%hr.spacer/

View File

@ -158,6 +158,7 @@ en:
public: Public
push_subscription_expires: PuSH subscription expires
redownload: Refresh profile
sync: Synchronize
reject: Reject
reject_all: Reject all
remove_avatar: Remove avatar

View File

@ -199,6 +199,7 @@ Rails.application.routes.draw do
post :unsilence
post :unsuspend
post :redownload
post :sync
post :remove_avatar
post :remove_header
post :memorialize