Hola, permito que los usuarios chateen en el canal pero los deshabilito en mensajes directos. En este caso, un usuario que no es del personal aún puede ver el botón de Chat en la tarjeta de otro usuario. Pero pueden recibir un mensaje incorrecto después de hacer clic en él.
Leí el código, el botón se muestra si can_chat_user. Esto está determinado por el siguiente código.
# plugins/chat/plugin.rb
add_to_serializer(:user_card, :can_chat_user) do
return false if !SiteSetting.chat_enabled
return false if scope.user.blank?
scope.user.id != object.id && scope.can_chat?(scope.user) && scope.can_chat?(object)
end
y
# plugins/chat/lib/guardian_extentions.rb
def can_chat?(user)
return false unless user
user.staff? || user.in_any_groups?(Chat.allowed_group_ids)
end