# 用户无法将他人添加到私人消息中

**URL:** https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671
**Category:** Support
**Created:** [2018 年9 月 20 日 16:11 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671 "2018-09-20T16:11:22Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### 作者： ![laughingriver](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@laughingriver](https://meta.discourse.org/u/laughingriver)
#### 发布日期： [2020 年1 月 26 日 14:40 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/21 "2020-01-26T14:40:43Z")

</div>

> [@codinghorror](#):
>
> 我们得等到周一，等 @tshenry 在线时再进一步测试。因为我想不出任何理由，说明为什么作为 PM 话题创建者的 TL2 用户不能编辑 PM 参与者……不过也许 @laughingriver 把 PM 拥有者和 PM 参与者搞混了……

这是我刚刚在 TPM 创建的一个示例：

 ![image](https://global.discourse-cdn.com/meta/original/3X/7/4/74594d71a450b121838926647d7f313d73130ecd.png)

我刚刚试着给你发了一条消息，结果在这里显示如下：

 ![image](https://global.discourse-cdn.com/meta/original/3X/7/8/78570bd272b84d12835f66369171001f782ad2fd.png)

虽然我现在不在 TL2，但在 TPM 我是 TL3 级别（一位版主为了测试把我提升到了这个级别）。

因此，当我作为发送者时，我无法移除自己（这很合理），也无法移除其他人；而当我作为接收者时，我只能移除自己，但在 TPM 上并没有通过“+”按钮添加其他人的选项……

---

<div class="post-metadata">

### 作者： ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### 发布日期： [2020 年1 月 27 日 18:40 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/23 "2020-01-27T18:40:30Z")

</div>

这是我找到的情况：

- TL2+ 用户可以将其他用户添加到私信中，无论他们是话题发起者 **还是** 收件人。
- TL1 私信创建者无法添加或移除用户。
- TL1 私信收件人可以移除自己，但无法添加新用户。

根据我们的信任等级说明，上述行为似乎是正确的（已加粗强调）：

> [@codinghorror](#):
>
> 信任等级为 2 的用户可以……
> 
> - 使用“邀请他人参与此话题”按钮，一键邀请新用户参与话题讨论
> - 邀请外部用户加入私信，创建群组私信

@laughingriver 最好的做法是先更新网站。之后我们可以尝试找出可能存在的其他影响因素。

---

<div class="post-metadata">

### 作者： ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### 发布日期： [2020 年1 月 28 日 02:13 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/24 "2020-01-28T02:13:00Z")

</div>

说到这个，@sam，我们或许可以考虑添加以下某种功能：

- 开启一个“封闭”的私信，除管理员外，任何人都无法添加或移除成员
- 仅私信所有者可添加或移除成员（管理员除外）

我认为这比在这里折腾 TL2/TL3 权限更有用。

---

<div class="post-metadata">

### 作者： ![laughingriver](https://avatars.discourse-cdn.com/v4/letter/l/ccd318/32.png) [@laughingriver](https://meta.discourse.org/u/laughingriver)
#### 发布日期： [2020 年1 月 28 日 13:19 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/25 "2020-01-28T13:19:50Z")

</div>

> [@tshenry](#):
>
> @laughingriver 最好的办法是先更新网站。之后我们再尝试找出可能影响的其他因素。

好的，如果这是网站更新的问题，考虑到 TPM 更新频率很高，那可能需要很长时间了。

那些信任级别设置是在他们升级到 2.3.0 版本之前发布的，所以我原以为这些设置已经生效了好几个版本了……

---

<div class="post-metadata">

### 作者： ![Edward\_D\_Avignon](https://avatars.discourse-cdn.com/v4/letter/e/ba9def/32.png) [@Edward\_D\_Avignon](https://meta.discourse.org/u/Edward_D_Avignon)
#### 发布日期： [2020 年9 月 4 日 12:54 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/26 "2020-09-04T12:54:06Z")

</div>

在我们的网站上，我们已关闭“启用个人消息”功能，因为必须防止成年人在未抄送家长或其他成年人的情况下向未成年人发送消息。我们确实使用个人消息在版主和用户之间进行沟通。

我们遇到的问题是：当点击现有消息的“添加或删除”时，只能移除收件人，无法添加新收件人。请问是否需要设置其他选项？或者，由于我们关闭了“启用个人消息”功能，导致添加收件人（即使是版主和管理员）也被禁用了？

感谢您的帮助。

---

<div class="post-metadata">

### 作者： ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### 发布日期： [2020 年9 月 5 日 00:10 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/27 "2020-09-05T00:10:39Z")

</div>

我今天早些时候也调查过类似的问题：[https://meta.discourse.org/t/unable-to-add-user-to-pm-topic/162945。在那种情况下，我发现的问题是，如果“每日最大邀请数”设置为](https://meta.discourse.org/t/unable-to-add-user-to-pm-topic/162945%E3%80%82%E5%9C%A8%E9%82%A3%E7%A7%8D%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E6%88%91%E5%8F%91%E7%8E%B0%E7%9A%84%E9%97%AE%E9%A2%98%E6%98%AF%EF%BC%8C%E5%A6%82%E6%9E%9C%E2%80%9C%E6%AF%8F%E6%97%A5%E6%9C%80%E5%A4%A7%E9%82%80%E8%AF%B7%E6%95%B0%E2%80%9D%E8%AE%BE%E7%BD%AE%E4%B8%BA) 0，普通用户无法邀请用户加入私信。而在您的案例中，问题可能出在“启用私信”这一站点设置上。当该设置被禁用时，只有管理员可以向现有私信中添加用户。如果“启用私信”被禁用，版主也无法向私信中添加用户。

您能否再次确认一下，管理员是否能够在您的网站上向私信中添加用户？要实现这一点，管理员必须是发起该私信的用户。

我相当确定这种行为是有意为之，因为代码中已明确写入。我不确定在禁用“启用私信”站点设置时，阻止版主向私信中添加用户背后的考量是什么。这或许是可以更改的。

我会在我们的开发者这里留个备注，以防有人想查看。问题出现在这里：[discourse/lib/guardian.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/lib/guardian.rb#L357%E3%80%82)

---

<div class="post-metadata">

### 作者： ![Edward\_D\_Avignon](https://avatars.discourse-cdn.com/v4/letter/e/ba9def/32.png) [@Edward\_D\_Avignon](https://meta.discourse.org/u/Edward_D_Avignon)
#### 发布日期： [2020 年9 月 5 日 01:46 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/28 "2020-09-05T01:46:53Z")

</div>

我测试了用管理员账号创建新的私信并添加用户，操作成功。

如果版主也能在“启用私信”功能被禁用的情况下发起私信时添加用户，那就更好了。

---

<div class="post-metadata">

### 作者： ![Edward\_D\_Avignon](https://avatars.discourse-cdn.com/v4/letter/e/ba9def/32.png) [@Edward\_D\_Avignon](https://meta.discourse.org/u/Edward_D_Avignon)
#### 发布日期： [2020 年12 月 9 日 15:54 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/29 "2020-12-09T15:54:17Z")

</div>

是否考虑过增加一个选项（或 simply 移除该限制），以便在“启用个人消息”功能被禁用的情况下，允许工作人员将用户添加至他们发起的私人消息中？

---

<div class="post-metadata">

### 作者： ![sdpiowa](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sdpiowa/32/242915_2.png) [@sdpiowa](https://meta.discourse.org/u/sdpiowa)
#### 发布日期： [2021 年7 月 31 日 06:33 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/30 "2021-07-31T06:33:48Z")

</div>

大家好，

几周前的一次更新后，我们开始遇到这个问题。用户可以移除他们拥有的私信中的其他参与者，但无法再添加任何用户：

 ![image](https://global.discourse-cdn.com/meta/original/3X/e/5/e5240d18b594596da5b9a9dc3968ade4670a7f06.png)

邀请权限设置为所有 TL2 级别的用户（我的测试用户具备该级别），并且已启用“允许个人消息”。每日最大邀请数设置为 10。我尚未发现导致此问题的其他原因。

有什么想法吗？谢谢！

---

<div class="post-metadata">

### 作者： ![diakopter](https://avatars.discourse-cdn.com/v4/letter/d/90db22/32.png) [@diakopter](https://meta.discourse.org/u/diakopter)
#### 发布日期： [2021 年8 月 13 日 01:32 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/31 "2021-08-13T01:32:15Z")

</div>

我也在最新的提交中看到了这个行为 😢

---

<div class="post-metadata">

### 作者： ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### 发布日期： [2021 年9 月 8 日 20:57 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/32 "2021-09-08T20:57:28Z")

</div>

@tshenry 我们能否在此复现任何问题？

---

<div class="post-metadata">

### 作者： ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### 发布日期： [2021 年9 月 14 日 01:55 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/34 "2021-09-14T01:55:02Z")

</div>

一篇帖子被拆分到了一个新主题：[为什么邀请与私信如此紧密地关联？](https://meta.discourse.org/t/why-are-invites-tied-so-closely-to-private-messages/203470)

---

<div class="post-metadata">

### 作者： ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### 发布日期： [2021 年9 月 14 日 01:59 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/35 "2021-09-14T01:59:50Z")

</div>

> [@sdpiowa](#):
>
> 用户可以移除他们拥有但不再拥有的 PM 中的其他参与者，但无法再添加任何用户：

我今天抽空稍微调查了一下这个问题，但无法复现所描述的行为。我尝试了三种消息场景，使用了提到的设置（PM 已启用，TL2 每天最多可邀请 10 次）：

1. 管理员 –\u003e TL2 ✅
2. TL2 –\u003e 管理员 ✅
3. TL2 –\u003e TL2 ✅

我尝试查看后续回复是否会破坏添加新用户的能力，但有趣的是，上述所有场景都显示 **所有者和参与者** 都有“添加”选项。如果要说有什么的话，我觉得目前的设置有点太_宽松_了。

唯一出现“移除”按钮但没有“添加”选项的情况是，当我作为某人发起的 PM 的 TL1 参与者时。我可以移除自己，但无法添加或移除其他人。

@sdpiowa @diakopter 你们仍然看到这个问题吗？如果是的话，能否帮我梳理一些详细的复现步骤，以便我尝试？

---

<div class="post-metadata">

### 作者： ![diakopter](https://avatars.discourse-cdn.com/v4/letter/d/90db22/32.png) [@diakopter](https://meta.discourse.org/u/diakopter)
#### 发布日期： [2021 年9 月 15 日 13:03 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/36 "2021-09-15T13:03:32Z")

</div>

是的，我将研究相关人员的语言等级（TL）和设定。我相信所有账号都是TL2，但我已针对某些情况调整了最低语言等级设定。我很快会再联系您。

---

<div class="post-metadata">

### 作者： ![jochen\_weber](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jochen_weber/32/167516_2.png) [@jochen\_weber](https://meta.discourse.org/u/jochen_weber)
#### 发布日期： [2021 年9 月 25 日 14:51 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/38 "2021-09-25T14:51:37Z")

</div>

您好，

在我们的论坛（由 Discourse 托管）上，我们也遇到了同样的问题。我们的站点已禁用“邀请”功能（即允许用户通过电子邮件向非用户发送邀请），并且个人消息现在仅显示“移除…”按钮（针对非管理员用户）。简要查看此处链接的代码：

> [@simon](#):
>
> 我将为我们的开发人员在此处留下备注，以防有人想查看。问题出现在这里：[discourse/lib/guardian.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/lib/guardian.rb#L357)

我猜测，目前没有专门的代码（函数或分支）来测试用户是否有权邀请他人加入现有的个人消息。也许这个“测试”最初是以某种方式偶然处理的，而在最近的更新后，行为发生了变化，但这是无意的（作为副作用）？如果能将其转化为管理员仪表板上的独立设置（“允许主题发起者向现有个人消息线程添加用户？”和“允许任何参与者向现有个人消息线程添加用户？”），那就太好了……

---

<div class="post-metadata">

### 作者： ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### 发布日期： [2021 年9 月 28 日 01:48 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/39 "2021-09-28T01:48:03Z")

</div>

以上信息对 @tshenry 有帮助吗？

---

<div class="post-metadata">

### 作者： ![tshenry](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tshenry/32/119495_2.png) [@tshenry](https://meta.discourse.org/u/tshenry)
#### 发布日期： [2021 年9 月 28 日 02:02 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/40 "2021-09-28T02:02:30Z")

</div>

有可能！我还没有机会再次深入调查。我会将其优先级调高，并争取明天处理。

---

<div class="post-metadata">

### 作者： ![nathank](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/nathank/32/290039_2.png) [@nathank](https://meta.discourse.org/u/nathank)
#### 发布日期： [2021 年10 月 8 日 09:24 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/47 "2021-10-08T09:24:26Z")

</div>

您在这方面有任何进展吗？我刚更新到最新版本，但行为似乎没有变化。

从我的角度来看，关键在于“必须批准用户”设置与邀请外部人员或现有用户加入项目（PMs）之间的交互。

---

<div class="post-metadata">

### 作者： ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### 发布日期： [2021 年10 月 8 日 10:00 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/48 "2021-10-08T10:00:31Z")

</div>

抱歉让大家久等，我们已指派工程师处理该问题。问题将很快得到解决。

---

<div class="post-metadata">

### 作者： ![dan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dan/32/101549_2.png) [@dan](https://meta.discourse.org/u/dan)
#### 发布日期： [2021 年10 月 8 日 16:03 UTC](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671/50 "2021-10-08T16:03:32Z")

</div>

我认为邀请加入主题（现有用户）和论坛（新用户）是两回事，应分别处理。我已提交一个拉取请求来修改此问题：

> <https://github.com/discourse/discourse/pull/14562>
>
> Invite is used in two contexts, when inviting a new user to the forum
> and when …inviting an existent user to a topic. The first case is more
> complex and it involves permission checks to ensure that new users can
> be created. In the second case, it is enough to ensure that the topic
> is visible for both users and that all preconditions are met.
> 
> One edge case is the invite to topic via email functionality which
> checks for both conditions because first the user must be invited to
> create an account first and then to the topic.
> 
> A side effect of these changes is that all site settings related to
> invites refer to inviting new users only now.

[上一页](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671.md?page=1)

[下一页](https://meta.discourse.org/t/users-unable-to-add-others-to-a-personal-message/97671.md?page=3)
