settings_cli.rb 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. # frozen_string_literal: true
  2. require_relative '../../config/boot'
  3. require_relative '../../config/environment'
  4. require_relative 'cli_helper'
  5. module Mastodon
  6. class RegistrationsCLI < Thor
  7. def self.exit_on_failure?
  8. true
  9. end
  10. desc 'open', 'Open registrations'
  11. def open
  12. Setting.registrations_mode = 'open'
  13. say('OK', :green)
  14. end
  15. desc 'approved', 'Open approval-based registrations'
  16. option :require_reason, type: :boolean, aliases: [:require_invite_text]
  17. long_desc <<~LONG_DESC
  18. Set registrations to require review from staff.
  19. With --require-reason, require users to enter a reason when registering,
  20. otherwise this field is optional.
  21. LONG_DESC
  22. def approved
  23. Setting.registrations_mode = 'approved'
  24. Setting.require_invite_text = options[:require_reason] unless options[:require_reason].nil?
  25. say('OK', :green)
  26. end
  27. desc 'close', 'Close registrations'
  28. def close
  29. Setting.registrations_mode = 'none'
  30. say('OK', :green)
  31. end
  32. end
  33. class SettingsCLI < Thor
  34. desc 'registrations SUBCOMMAND ...ARGS', 'Manage state of registrations'
  35. subcommand 'registrations', RegistrationsCLI
  36. end
  37. end