mirror of
https://github.com/lingble/chatwoot.git
synced 2025-12-24 22:57:15 +00:00
27 lines
771 B
Ruby
27 lines
771 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Pubsubable
|
|
extend ActiveSupport::Concern
|
|
|
|
included do
|
|
# Used by the actionCable/PubSub Service we use for real time communications
|
|
has_secure_token :pubsub_token
|
|
before_save :rotate_pubsub_token
|
|
end
|
|
|
|
def rotate_pubsub_token
|
|
# ATM we are only rotating the token if the user is changing their password
|
|
return unless is_a?(User)
|
|
|
|
# Using the class method to avoid the extra Save
|
|
# TODO: Should we do this on signin ?
|
|
self.pubsub_token = self.class.generate_unique_secure_token if will_save_change_to_encrypted_password?
|
|
end
|
|
|
|
def pubsub_token
|
|
# backfills tokens for existing records
|
|
regenerate_pubsub_token if self[:pubsub_token].blank? && persisted?
|
|
self[:pubsub_token]
|
|
end
|
|
end
|