1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-26 00:29:40 +02:00
Maybe/app/models/user.rb

42 lines
1 KiB
Ruby
Raw Normal View History

2024-02-02 09:05:04 -06:00
class User < ApplicationRecord
has_secure_password
2024-02-02 09:05:04 -06:00
belongs_to :family
accepts_nested_attributes_for :family
2024-02-02 09:05:04 -06:00
validates :email, presence: true, uniqueness: true
normalizes :email, with: ->(email) { email.strip.downcase }
2024-02-02 09:05:04 -06:00
normalizes :first_name, :last_name, with: ->(value) { value.strip.presence }
enum :role, { member: "member", admin: "admin" }, validate: true
2024-02-02 09:05:04 -06:00
generates_token_for :password_reset, expires_in: 15.minutes do
password_salt&.last(10)
end
def display_name
[ first_name, last_name ].compact.join(" ").presence || email
end
def initial
(display_name&.first || email.first).upcase
end
def acknowledge_upgrade_prompt(commit_sha)
update!(last_prompted_upgrade_commit_sha: commit_sha)
end
def acknowledge_upgrade_alert(commit_sha)
update!(last_alerted_upgrade_commit_sha: commit_sha)
end
def has_seen_upgrade_prompt?(upgrade)
last_prompted_upgrade_commit_sha == upgrade.commit_sha
end
def has_seen_upgrade_alert?(upgrade)
last_alerted_upgrade_commit_sha == upgrade.commit_sha
end
2024-02-02 09:05:04 -06:00
end