diff options
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/admin/accounts_controller.rb | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/app/controllers/admin/accounts_controller.rb b/app/controllers/admin/accounts_controller.rb index 4c41c4215..ef2f8c4c2 100644 --- a/app/controllers/admin/accounts_controller.rb +++ b/app/controllers/admin/accounts_controller.rb @@ -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 |