Class: User::Identities::EmailVerification

Inherits:
ActiveRecord::Base
  • Object
show all
Includes:
TokenSegment
Defined in:
app/models/user/identities/email_verification.rb

Overview

An EmailVerification is a token that is sent to a specific recipient and it is used to perform a task while confirming email validation.

Once used the token should be marked as spent, that will ensure that the token is fresh and hasn’t been used before via validation.

It is used by Identities::Email to verify an email address at signup, validate email address changes and reset the password.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.address_change_verificationObject



44
45
46
# File 'app/models/user/identities/email_verification.rb', line 44

def self.address_change_verification
  where(type: 'AddressChangeVerification')
end

.address_signup_verificationObject



41
42
43
# File 'app/models/user/identities/email_verification.rb', line 41

def self.
  where(type: 'SignUpAddressVerification')
end

.address_verificationObject



37
38
39
# File 'app/models/user/identities/email_verification.rb', line 37

def self.address_verification
  where(type: ['SignUpAddressVerification', 'AddressChangeVerification'])
end

.password_resetObject



48
49
50
# File 'app/models/user/identities/email_verification.rb', line 48

def self.password_reset
  where(type: 'PasswordReset')
end

.spentObject



33
34
35
# File 'app/models/user/identities/email_verification.rb', line 33

def self.spent
  where.not(spent_at: nil)
end

.unspentObject



29
30
31
# File 'app/models/user/identities/email_verification.rb', line 29

def self.unspent
  where(spent_at: nil)
end

Instance Method Details

#spendObject



52
53
54
# File 'app/models/user/identities/email_verification.rb', line 52

def spend
  self.spent_at = Time.now
end

#spend!Object



56
57
58
59
# File 'app/models/user/identities/email_verification.rb', line 56

def spend!
  spend
  save!
end

#spent?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'app/models/user/identities/email_verification.rb', line 65

def spent?
  !unspent?
end

#unspent?Boolean

Returns:

  • (Boolean)


61
62
63
# File 'app/models/user/identities/email_verification.rb', line 61

def unspent?
  spent_at.nil? ? true : false
end