forked from mastodon/mastodon
-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add batch actions for approving and rejecting pending accounts (masto…
- Loading branch information
Showing
8 changed files
with
130 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
# frozen_string_literal: true | ||
|
||
module Admin | ||
class PendingAccountsController < BaseController | ||
before_action :set_accounts, only: :index | ||
|
||
def index | ||
@form = Form::AccountBatch.new | ||
end | ||
|
||
def update | ||
@form = Form::AccountBatch.new(form_account_batch_params.merge(current_account: current_account, action: action_from_button)) | ||
@form.save | ||
rescue ActionController::ParameterMissing | ||
# Do nothing | ||
ensure | ||
redirect_to admin_pending_accounts_path(current_params) | ||
end | ||
|
||
def approve_all | ||
Form::AccountBatch.new(account_ids: User.pending.pluck(:account_id), action: 'approve').save | ||
redirect_to admin_pending_accounts_path(current_params) | ||
end | ||
|
||
def reject_all | ||
Form::AccountBatch.new(account_ids: User.pending.pluck(:account_id), action: 'reject').save | ||
redirect_to admin_pending_accounts_path(current_params) | ||
end | ||
|
||
private | ||
|
||
def set_accounts | ||
@accounts = Account.joins(:user).merge(User.pending).page(params[:page]) | ||
end | ||
|
||
def form_account_batch_params | ||
params.require(:form_account_batch).permit(:action, account_ids: []) | ||
end | ||
|
||
def action_from_button | ||
if params[:approve] | ||
'approve' | ||
elsif params[:reject] | ||
'reject' | ||
end | ||
end | ||
|
||
def current_params | ||
params.slice(:page).permit(:page) | ||
end | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
.batch-table__row | ||
%label.batch-table__row__select.batch-table__row__select--aligned.batch-checkbox | ||
= f.check_box :account_ids, { multiple: true, include_hidden: false }, account.id | ||
.batch-table__row__content.batch-table__row__content--unpadded | ||
%table.accounts-table | ||
%tbody | ||
%tr | ||
%td | ||
= account.user_email | ||
= "(@#{account.username})" | ||
%br/ | ||
= account.user_current_sign_in_ip | ||
%td.accounts-table__count | ||
= table_link_to 'pencil', t('admin.accounts.edit'), admin_account_path(account.id) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
- content_for :page_title do | ||
= t('admin.pending_accounts.title', count: User.pending.count) | ||
|
||
- content_for :header_tags do | ||
= javascript_pack_tag 'admin', integrity: true, async: true, crossorigin: 'anonymous' | ||
|
||
= form_for(@form, url: admin_pending_accounts_path, method: :patch) do |f| | ||
= hidden_field_tag :page, params[:page] || 1 | ||
|
||
.batch-table | ||
.batch-table__toolbar | ||
%label.batch-table__toolbar__select.batch-checkbox-all | ||
= check_box_tag :batch_checkbox_all, nil, false | ||
.batch-table__toolbar__actions | ||
= f.button safe_join([fa_icon('check'), t('admin.accounts.approve')]), name: :approve, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } | ||
|
||
= f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') } | ||
.batch-table__body | ||
- if @accounts.empty? | ||
= nothing_here 'nothing-here--under-tabs' | ||
- else | ||
= render partial: 'account', collection: @accounts, locals: { f: f } | ||
|
||
= paginate @accounts | ||
|
||
%hr.spacer/ | ||
|
||
%div{ style: 'overflow: hidden' } | ||
%div{ style: 'float: right' } | ||
= link_to t('admin.accounts.reject_all'), reject_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' | ||
|
||
%div | ||
= link_to t('admin.accounts.approve_all'), approve_all_admin_pending_accounts_path, method: :post, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters