|
|
|
@ -120,6 +120,7 @@ module Mastodon |
|
|
|
|
option :disable, type: :boolean |
|
|
|
|
option :disable_2fa, type: :boolean |
|
|
|
|
option :approve, type: :boolean |
|
|
|
|
option :reset_password, type: :boolean |
|
|
|
|
desc 'modify USERNAME', 'Modify a user' |
|
|
|
|
long_desc <<-LONG_DESC |
|
|
|
|
Modify a user account. |
|
|
|
@ -138,6 +139,9 @@ module Mastodon |
|
|
|
|
|
|
|
|
|
With the --disable-2fa option, the two-factor authentication |
|
|
|
|
requirement for the user can be removed. |
|
|
|
|
|
|
|
|
|
With the --reset-password option, the user's password is replaced by |
|
|
|
|
a randomly-generated one, printed in the output. |
|
|
|
|
LONG_DESC |
|
|
|
|
def modify(username) |
|
|
|
|
user = Account.find_local(username)&.user |
|
|
|
@ -152,6 +156,8 @@ module Mastodon |
|
|
|
|
user.moderator = options[:role] == 'moderator' |
|
|
|
|
end |
|
|
|
|
|
|
|
|
|
password = SecureRandom.hex if options[:reset_password] |
|
|
|
|
user.password = password if options[:reset_password] |
|
|
|
|
user.email = options[:email] if options[:email] |
|
|
|
|
user.disabled = false if options[:enable] |
|
|
|
|
user.disabled = true if options[:disable] |
|
|
|
@ -161,6 +167,7 @@ module Mastodon |
|
|
|
|
|
|
|
|
|
if user.save |
|
|
|
|
say('OK', :green) |
|
|
|
|
say("New password: #{password}") if options[:reset_password] |
|
|
|
|
else |
|
|
|
|
user.errors.to_h.each do |key, error| |
|
|
|
|
say('Failure/Error: ', :red) |
|
|
|
|