glitchier-soc/lib/mastodon/settings_cli.rb
Claire bc19c083ce
Add ability to set approval-based registration through tootctl (#18248)
Fixes #18235

Add `tootctl settings registrations approved` with
optional `--require-reason` switch.
2022-05-02 17:41:34 +02:00

44 lines
1.2 KiB
Ruby

# frozen_string_literal: true
require_relative '../../config/boot'
require_relative '../../config/environment'
require_relative 'cli_helper'
module Mastodon
class RegistrationsCLI < Thor
def self.exit_on_failure?
true
end
desc 'open', 'Open registrations'
def open
Setting.registrations_mode = 'open'
say('OK', :green)
end
desc 'approved', 'Open approval-based registrations'
option :require_reason, type: :boolean, aliases: [:require_invite_text]
long_desc <<~LONG_DESC
Set registrations to require review from staff.
With --require-reason, require users to enter a reason when registering,
otherwise this field is optional.
LONG_DESC
def approved
Setting.registrations_mode = 'approved'
Setting.require_invite_text = options[:require_reason] unless options[:require_reason].nil?
say('OK', :green)
end
desc 'close', 'Close registrations'
def close
Setting.registrations_mode = 'none'
say('OK', :green)
end
end
class SettingsCLI < Thor
desc 'registrations SUBCOMMAND ...ARGS', 'Manage state of registrations'
subcommand 'registrations', RegistrationsCLI
end
end