diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2019-04-06 04:47:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-04-06 04:47:05 +0200 |
commit | e007c7a99b2ef9903a3aad5ff67902e9fd10b232 (patch) | |
tree | eb8ec386b198431424df739d7853e67c982075dc | |
parent | fb8557e6521e45441ab64d106e1afafd48051f24 (diff) |
Add `tootctl accounts approve` (#10480)
-rw-r--r-- | lib/mastodon/accounts_cli.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb index 41e902e8f..9b25a2ef7 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) |