invitation emails

This commit is contained in:
2026-01-23 13:49:56 +01:00
parent 35c29749fb
commit 396e649960
14 changed files with 531 additions and 7 deletions
+19
View File
@@ -21,4 +21,23 @@ class User < ApplicationRecord
validates :email, presence: true, uniqueness: true
validates :password, length: { minimum: 12 }, if: -> { password.present? }
# Invitation token expires after 14 days
INVITATION_TOKEN_EXPIRY = 14.days
def invitation_expired?
return false if invitation_sent_at.nil?
invitation_sent_at < INVITATION_TOKEN_EXPIRY.ago
end
def invitation_pending?
invitation_token.present? && invitation_accepted_at.nil? && !invitation_expired?
end
def self.find_by_valid_invitation_token(token)
where(invitation_token: token)
.where(invitation_accepted_at: nil)
.where("invitation_sent_at > ?", INVITATION_TOKEN_EXPIRY.ago)
.first
end
end