summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2019-04-06 04:47:05 +0200
committerGitHub <noreply@github.com>2019-04-06 04:47:05 +0200
commite007c7a99b2ef9903a3aad5ff67902e9fd10b232 (patch)
treeeb8ec386b198431424df739d7853e67c982075dc /lib
parentfb8557e6521e45441ab64d106e1afafd48051f24 (diff)
Add `tootctl accounts approve` (#10480)
Diffstat (limited to 'lib')
-rw-r--r--lib/mastodon/accounts_cli.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 41e902e8fba..9b25a2ef7fc 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -367,6 +367,37 @@ module Mastodon
say("OK, unfollowed target from #{processed} accounts, skipped #{failed}", :green)
end
+ option :number, type: :numeric, aliases: [:n]
+ option :all, type: :boolean
+ desc 'approve [USERNAME]', 'Approve pending accounts'
+ long_desc <<~LONG_DESC
+ When registrations require review from staff, approve pending accounts,
+ either all of them with the --all option, or a specific number of them
+ specified with the --number (-n) option, or only a single specific
+ account identified by its username.
+ LONG_DESC
+ def approve(username = nil)
+ if options[:all]
+ User.pending.find_each(&:approve!)
+ say('OK', :green)
+ elsif options[:number]
+ User.pending.limit(options[:number]).each(&:approve!)
+ say('OK', :green)
+ elsif username.present?
+ account = Account.find_local(username)
+
+ if account.nil?
+ say('No such account', :red)
+ exit(1)
+ end
+
+ account.user&.approve!
+ say('OK', :green)
+ else
+ exit(1)
+ end
+ end
+
private
def rotate_keys_for_account(account, delay = 0)