Files
fizzy/app/models/identity.rb
T
Stanko K.R. f64a49dcc0 Determine staff members based on flag
This replaces the old system based on email addresses, the aim is to make it more generic and thus appropriate for OSS/self-hosting

See: https://3.basecamp.com/2914079/buckets/37331921/todos/9302705265#__recording_9320051455
2025-11-25 14:09:31 +01:00

26 lines
611 B
Ruby

class Identity < ApplicationRecord
include Joinable, Transferable
has_many :magic_links, dependent: :destroy
has_many :sessions, dependent: :destroy
has_many :users, dependent: :nullify
has_many :accounts, through: :users
has_one_attached :avatar
before_destroy :deactivate_users
normalizes :email_address, with: ->(value) { value.strip.downcase.presence }
def send_magic_link
magic_links.create!.tap do |magic_link|
MagicLinkMailer.sign_in_instructions(magic_link).deliver_later
end
end
private
def deactivate_users
users.find_each(&:deactivate)
end
end