Sha256: 3adc8a59b0aae1c0d402eedb0c5079bbe4fbff653e1791eb3427536d0c205f09

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

class User < ActiveRecord::Base
  
  has_secure_password
  
  # associations connected to tkh_content gem. Any page or comment model will do
  has_many :pages
  has_many :comments, :dependent => :destroy
  
  # not allowed are :admin:boolean, :auth_token:string, password_reset_token:string, password_reset_sent_at:datetime
  attr_accessible :email, :password, :password_confirmation, :first_name, :last_name
  
  validates_presence_of :email
  validates_uniqueness_of :email, :case_sensitive => false
  validates_presence_of :password, on: :create
  validates_presence_of :first_name
  validates_presence_of :last_name
  
  before_create { generate_token(:auth_token) }
  
  # use the stringex gem to create slug | usually on the title or name attribute
  def to_param
    "#{id}-#{name.to_url}"
  end

  scope :by_recent, :order => 'updated_at desc'
  
  def name
    result = "#{first_name} #{last_name}".strip
  end

  def send_password_reset
    generate_token(:password_reset_token)
    self.password_reset_sent_at = Time.zone.now
    save!
    UserMailer.password_reset(self).deliver
  end

  def generate_token(column)
    begin
      self[column] = SecureRandom.urlsafe_base64
    end while User.exists?(column => self[column])
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tkh_authentication-0.1.5 app/models/user.rb
tkh_authentication-0.1.3 app/models/user.rb