]> cat aescling's git repositories - mastodon.git/commitdiff
#1456 Added rake task to add a user. (#1482)
authorDebanshu Kundu <debanshu.kundu@joshtechnologygroup.com>
Tue, 27 Jun 2017 12:18:53 +0000 (17:48 +0530)
committerEugen Rochko <eugen@zeonfederated.com>
Tue, 27 Jun 2017 12:18:53 +0000 (14:18 +0200)
lib/tasks/mastodon.rake

index 6c7326b74c1eb95e4dc74e3b7fa07680cc4eadd3..0e182c7556ab7ea918817e5a05a3a8431686c703 100644 (file)
@@ -42,6 +42,37 @@ namespace :mastodon do
     end
   end
 
+  desc 'Add a user by providing their email, username and initial password.' \
+       'The user will receive a confirmation email, then they must reset their password before logging in.'
+  task add_user: :environment do
+    print 'Enter email: '
+    email = STDIN.gets.chomp
+
+    print 'Enter username: '
+    username = STDIN.gets.chomp
+
+    print 'Create user and send them confirmation mail [y/N]: '
+    confirm = STDIN.gets.chomp
+    puts
+
+    if confirm.casecmp?('y')
+      password = SecureRandom.hex
+      user = User.new(email: email, password: password, account_attributes: { username: username })
+      if user.save
+        puts 'User added and confirmation mail sent to user\'s email address.'
+        puts "Here is the random password generated for the user: #{password}"
+      else
+        puts 'Following errors occured while creating new user:'
+        user.errors.each do |key, val|
+          puts "#{key}: #{val}"
+        end
+      end
+    else
+      puts 'Aborted by user.'
+    end
+    puts
+  end
+
   namespace :media do
     desc 'Removes media attachments that have not been assigned to any status for longer than a day'
     task clear: :environment do