Sha256: a45ef1afb7f68fc9db534e115f28210b8d5ff0d9603c563eaeee3ea6bba599d4

Contents?: true

Size: 1.05 KB

Versions: 4

Compression:

Stored size: 1.05 KB

Contents

# module Unsakini
module Unsakini
  class User < ApplicationRecord

    has_secure_password

    validates_uniqueness_of :email, case_sensitive: false, on: [:create]
    validates_format_of :email, with: /@/
    validates :name, :email, presence: true
    validates :password, :presence     => true,
      :confirmation => true,
      :length       => { :minimum => 6 },
      :if           => :password # only validate if password changed!

    has_many :user_boards
    has_many :boards, through: :user_boards

    before_save :downcase_email
    before_create :generate_confirmation_instructions

    def downcase_email
      self.email = self.email.delete(' ').downcase
    end

    def generate_confirmation_instructions
      self.confirmation_token = SecureRandom.hex(10)
      self.confirmation_sent_at = Time.now.utc
    end

    def confirmation_token_valid?
      (self.confirmation_sent_at + 30.days) > Time.now.utc
    end

    def mark_as_confirmed!
      self.confirmation_token = nil
      self.confirmed_at = Time.now.utc
      save
    end

  end
end

# end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
unsakini-0.0.5 app/models/unsakini/user.rb
unsakini-0.0.5.pre.1 app/models/unsakini/user.rb
unsakini-0.0.4.pre.1 app/models/unsakini/user.rb
unsakini-0.0.4.3 app/models/unsakini/user.rb