| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -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)
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |