f64a49dcc0
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
29 lines
871 B
Ruby
29 lines
871 B
Ruby
class User < ApplicationRecord
|
|
include Accessor, Assignee, Attachable, Configurable, EmailAddressChangeable,
|
|
Mentionable, Named, Notifiable, Role, Searcher, Watcher
|
|
include Timelined # Depends on Accessor
|
|
|
|
has_one_attached :avatar do |attachable|
|
|
attachable.variant :thumb, resize_to_limit: [ 256, 256 ]
|
|
end
|
|
|
|
belongs_to :account
|
|
belongs_to :identity, optional: true
|
|
|
|
has_many :comments, inverse_of: :creator, dependent: :destroy
|
|
|
|
has_many :filters, foreign_key: :creator_id, inverse_of: :creator, dependent: :destroy
|
|
has_many :closures, dependent: :nullify
|
|
has_many :pins, dependent: :destroy
|
|
has_many :pinned_cards, through: :pins, source: :card
|
|
|
|
scope :with_avatars, -> { preload(:account, :avatar_attachment) }
|
|
|
|
def deactivate
|
|
transaction do
|
|
accesses.destroy_all
|
|
update! active: false, identity: nil
|
|
end
|
|
end
|
|
end
|