Sha256: 94dd4889c817da585965d58aaf4079cfc51dbe3af2fb07418e3ba52dfbca8569

Contents?: true

Size: 1.21 KB

Versions: 21

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Thredded
  class UserDetail < ActiveRecord::Base
    include Thredded::ModerationState

    belongs_to :user, class_name: Thredded.user_class_name, inverse_of: :thredded_user_detail
    validates :user_id, uniqueness: true, **(Thredded.rails_gte_51? ? {} : { presence: true })

    has_many :topics, class_name: 'Thredded::Topic', foreign_key: :user_id, primary_key: :user_id
    has_many :private_topics, class_name: 'Thredded::PrivateTopic', foreign_key: :user_id, primary_key: :user_id
    has_many :posts, class_name: 'Thredded::Post', foreign_key: :user_id, primary_key: :user_id
    has_many :private_posts, class_name: 'Thredded::PrivatePost', foreign_key: :user_id, primary_key: :user_id
    has_many :messageboard_users, class_name: 'Thredded::MessageboardUser', foreign_key: :thredded_user_detail_id,
                                  inverse_of: :user_detail, dependent: :destroy

    scope :recently_active, -> { where(arel_table[:last_seen_at].gt(Thredded.active_user_threshold.ago)) }

    before_save :set_moderation_state_changed_at

    private

    def set_moderation_state_changed_at
      self.moderation_state_changed_at = Time.current if moderation_state_changed?
    end
  end
end

Version data entries

21 entries across 21 versions & 2 rubygems

Version Path
thredded-0.15.4 app/models/thredded/user_detail.rb
thredded-0.15.3 app/models/thredded/user_detail.rb
thredded-0.15.2 app/models/thredded/user_detail.rb
thredded-0.15.1 app/models/thredded/user_detail.rb
threddedDANIEL-0.14.5 app/models/thredded/user_detail.rb
thredded-0.14.4 app/models/thredded/user_detail.rb
thredded-0.14.3 app/models/thredded/user_detail.rb
thredded-0.14.2 app/models/thredded/user_detail.rb
thredded-0.14.1 app/models/thredded/user_detail.rb
thredded-0.14.0 app/models/thredded/user_detail.rb
thredded-0.13.8 app/models/thredded/user_detail.rb
thredded-0.13.7 app/models/thredded/user_detail.rb
thredded-0.13.6 app/models/thredded/user_detail.rb
thredded-0.13.5 app/models/thredded/user_detail.rb
thredded-0.13.4 app/models/thredded/user_detail.rb
thredded-0.13.3 app/models/thredded/user_detail.rb
thredded-0.13.2 app/models/thredded/user_detail.rb
thredded-0.13.1 app/models/thredded/user_detail.rb
thredded-0.13.0 app/models/thredded/user_detail.rb
thredded-0.12.4 app/models/thredded/user_detail.rb