Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Generate Random Password In Rails

DZone's Guide to

Generate Random Password In Rails

·
Free Resource
http://railsgeek.com/2009/1/6/generate-random-password-in-rails

I am using Restful_authentication plugin for one of my projects.
As part of my user creation workflow, system should to generate a random password for the new user.
So, look at my password creation behaviour:

    * generate uncrypted password
    * send this with e-mail notification
    * crypt the password


 
  
class CandidatesController < ApplicationController
  ...
  if @candidate.valid?
    candidate.save
    Notifier.deliver_inv(candidate.email, candidate.crypted_password)
    candidate.encrypt_password
  end
end


  
   
require 'digest/sha1'
class User < ActiveRecord::Base
  ...
  def encrypt_password
    self.salt = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{name}--")
    self.crypted_password = encrypt(self.crypted_password)
    save(false)
  end
  protected
    def save_password
      (self.crypted_password = password) unless self.crypted_password
    end
...
end

class Candidate < User
  # Callbacks:
  before_save :save_password
  before_validation_on_create Proc.new do |u|
    u.password = Array.new(12) { (rand(122-97) + 97).chr }.join
    u.password_confirmation = u.password
  end

end


  
 
Topics:

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

SEE AN EXAMPLE
Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.
Subscribe

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}