Sha256: be1280fe88d3e69bd7686f3bc351ddb0ef7f257970e9e8c0c6640fae71fc208c

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

module Shoppe
  class User < ActiveRecord::Base

    self.table_name = 'shoppe_users'

    has_secure_password

    # Validations
    validates :first_name, presence: true
    validates :last_name, presence: true
    validates :email_address, presence: true

    # The user's first name & last name concatenated
    #
    # @return [String]
    def full_name
      "#{first_name} #{last_name}"
    end

    # The user's first name & initial of last name concatenated
    #
    # @return [String]
    def short_name
      "#{first_name} #{last_name[0,1]}"
    end

    # Reset the user's password to something random and e-mail it to them
    def reset_password!
      self.password = SecureRandom.hex(8)
      self.password_confirmation = self.password
      self.save!
      Shoppe::UserMailer.new_password(self).deliver
    end

    # Attempt to authenticate a user based on email & password. Returns the
    # user if successful otherwise returns false.
    #
    # @param email_address [String]
    # @param paassword [String]
    # @return [Shoppe::User]
    def self.authenticate(email_address, password)
      user = self.where(email_address: email_address).first
      return false if user.nil?
      return false unless user.authenticate(password)
      user
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
shoppe-1.1.2 app/models/shoppe/user.rb