Sha256: 6e39d9803512d57af5edba2f88186553634bb731611c5ff8e52c815d00d0b949
Contents?: true
Size: 1.73 KB
Versions: 1
Compression:
Stored size: 1.73 KB
Contents
require 'digest/sha1' module Goldberg class User < ActiveRecord::Base include Goldberg::Model belongs_to :role validates_presence_of :name, :role_id, :password validates_uniqueness_of :name attr_accessor :clear_password attr_accessor :confirm_password def before_validation if self.clear_password # Only update password if changed self.password_salt = self.object_id.to_s + rand.to_s self.password = Digest::SHA1.hexdigest(self.password_salt + self.clear_password) end end def before_save if self.self_reg_confirmation_required self.set_confirmation_key end end def after_save self.clear_password = nil end def check_password(clear_password) self.password == Digest::SHA1.hexdigest(self.password_salt.to_s + clear_password) end def set_confirmation_key self.confirmation_key = Digest::SHA1.hexdigest(self.object_id.to_s + rand.to_s) end def email_valid? self.email && self.email.length > 0 && # http://regexlib.com/DisplayPatterns.aspx self.email =~ /\A.+@[^\.].*\.[a-z]{2,}\z/ end def get_start_path if self.start_path and self.start_path.length > 0 self.start_path else self.role.get_start_path end end class << self def random_password letters = ('A' .. 'Z').to_a + ('a' .. 'z').to_a password = (1 .. 6).collect do letters[ (rand * letters.length).to_i ] end password.to_s end end # class methods end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
goldberg_generator-0.2.2 | templates/vendor/plugins/goldberg/app/models/goldberg/user.rb |