Sha256: b72e4222cbfa8ffe12a706bbc2b306423c3df817d87f9117e1f86d99080f3c05

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

require 'active_support/concern'

module Thredded
  module UserExtender
    extend ActiveSupport::Concern

    included do
      has_many :thredded_messageboard_preferences, class_name: 'Thredded::MessageboardPreference', foreign_key: 'user_id'
      has_many :thredded_posts, class_name: 'Thredded::Post', foreign_key: 'user_id'
      has_many :thredded_private_topics, through: :thredded_private_users, class_name: 'Thredded::PrivateTopic', source: :private_topic
      has_many :thredded_private_users, class_name: 'Thredded::PrivateUser', foreign_key: 'user_id'
      has_many :thredded_roles, class_name: 'Thredded::Role', foreign_key: 'user_id'
      has_many :thredded_topics, class_name: 'Thredded::Topic', foreign_key: 'user_id'

      has_one :thredded_user_detail, class_name: 'Thredded::UserDetail', foreign_key: 'user_id'
      has_one :thredded_user_preference, class_name: 'Thredded::UserPreference', foreign_key: 'user_id'


      def self.recently_active_in(messageboard)
        joins(:thredded_roles)
          .where(thredded_roles: { messageboard_id: messageboard.id })
          .where('thredded_roles.last_seen > ?', 5.minutes.ago)
          .order('thredded_roles.last_seen')
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
thredded-0.0.1 app/models/thredded/user_extender.rb