Sha256: 73437e85d5191ab1bed04e11803d4c299372dc8db0e9666f4912faf3f171aebe
Contents?: true
Size: 1.36 KB
Versions: 5
Compression:
Stored size: 1.36 KB
Contents
class User < ApplicationRecord has_secure_password has_many :email_verification_tokens, dependent: :destroy has_many :password_reset_tokens, dependent: :destroy has_many :sessions, dependent: :destroy <%- if options.trackable? -%> has_many :events, dependent: :destroy <%- end -%> <%- if code_verifiable? %> kredis_string :verification_code, expires_in: 2.days <%- end -%> validates :email, presence: true, uniqueness: true, format: { with: URI::MailTo::EMAIL_REGEXP } validates :password, allow_nil: true, length: { minimum: 12 }, format: { with: /(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])/ } <%- if options.pwned? -%> validates :password, not_pwned: { message: "might easily be guessed" } <%- end -%> before_validation do self.email = email.try(:downcase).try(:strip) end before_validation if: :email_changed? do self.verified = false end after_update if: :password_digest_previously_changed? do sessions.where.not(id: Current.session).destroy_all end <%- if options.trackable? %> after_update if: :email_previously_changed? do events.create! action: "email_verification_requested" end after_update if: :password_digest_previously_changed? do events.create! action: "password_changed" end after_update if: :verified_previously_changed? do events.create! action: "email_verified" if verified? end <%- end -%> end
Version data entries
5 entries across 5 versions & 1 rubygems