# 如果禁用直接消息，用户卡中的聊天按钮应隐藏

**URL:** https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877
**Category:** Bug
**Tags:** chat
**Created:** [2022年十一月17日 08:17 UTC](https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877 "2022-11-17T08:17:39Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![topological](https://avatars.discourse-cdn.com/v4/letter/t/b487fb/32.png) [@topological](https://meta.discourse.org/u/topological)
#### Post date: [2022年十一月17日 08:17 UTC](https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877/1 "2022-11-17T08:17:39Z")

</div>

您好，我允许用户在频道中聊天，但在私信中禁用他们。在这种情况下，非员工用户仍然可以在其他用户的用户卡片中看到“聊天”按钮。但点击后他们可能会收到错误消息。

我阅读了代码，如果 `can_chat_user` 为真，则显示该按钮。这是由以下代码确定的。

```ruby
# 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

```

和

```ruby
# 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

```

---

<div class="post-metadata">

### Author: ![mcwumbly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/mcwumbly/32/103861_2.png) [@mcwumbly](https://meta.discourse.org/u/mcwumbly)
#### Post date: [2022年十一月17日 20:00 UTC](https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877/2 "2022-11-17T20:00:40Z")

</div>

感谢您报告此问题！我会将其添加到我们的修复列表中。

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [2022年十一月17日 22:44 UTC](https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877/5 "2022-11-17T22:44:57Z")

</div>

好，谢谢，应该已经修复了：

> <https://github.com/discourse/discourse/pull/19093>

👍

---

<div class="post-metadata">

### Author: ![j.jaffeux](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/j.jaffeux/32/60297_2.png) [@j.jaffeux](https://meta.discourse.org/u/j.jaffeux)
#### Post date: [2022年十一月19日 22:45 UTC](https://meta.discourse.org/t/chat-button-in-user-card-should-hide-if-disable-direct-message/245877/6 "2022-11-19T22:45:14Z")

</div>

该主题在上次回复后 2 天自动关闭。不再允许新回复。
