Rake task to create admin and regular users (with prompting!)

Tagged with rake Ruby Rails

Language: Ruby

View as text

require 'highline'
namespace :db do
  namespace :setup do
    desc "create default admin user"
    task :admin => :environment do
      admin = User.create(
        :login => "admin", 
        :name => "My Admin", 
        :email => "webdev@example.com", 
        :password => "Password01", 
        :password_confirmation => "Password01"
        )
      admin.activated_at = 5.days.ago
      admin.activation_code = nil
      admin.save false
    end  
    
    desc "Create user accounts with rake, prompting for user name and password."
    task :user => :environment do
      ui = HighLine.new
      name     = ui.ask("Full Human name: ")
      email    = ui.ask("Email: ")
      login    = ui.ask("Login name: ")
      password = ui.ask("Enter password: ") { |q| q.echo = false }
      confirm  = ui.ask("Confirm password: ") { |q| q.echo = false }
      
      user = User.new(:name => name, :email => email, :login => login, :password => password, :password_confirmation => confirm)
      if user.save false
        puts "User account '#{login}' created."
      else
        puts
        puts "Problem creating user account:"
        puts user.errors.full_messages
      end
    end

  end
end
Original snippet written by Jon Kinney
Last updated at 08:05 AM on Aug 08, 2008

SnippetStash costs money to host and develop. The service is free for everyone to use
but if you found it useful please consider making a small donation.