# 自动组的可见性如何工作？

**URL:** https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196
**Category:** Support
**Created:** [2021年二月26日 06:04 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196 "2021-02-26T06:04:37Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![mdoggydog](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mdoggydog](https://meta.discourse.org/u/mdoggydog)
#### Post date: [2021年二月26日 06:04 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/1 "2021-02-26T06:04:37Z")

</div>

我对自动组的可见性如何运作有些困惑。目前，我仅讨论 `/groups` 目录。

在我刚刚安装的 2.7.0.beta4 版本中，我观察到以下情况：

- 如果拥有管理员或版主权限的用户查看 `/groups`，他们会看到全部 8 个自动组（ **admins** 、 **moderators** 、 **staff** 、**trust\_level\_[0-4]**）。
- 如果非管理员且非版主用户（无论其信任等级如何）查看 `/groups`，他们仅能看到 **moderators** 组。

然而，所有这些组的可见性设置都是相同的默认值：

- _谁可以看到此组？_ 已登录用户
- _谁可以看到此组的成员？_ 所有人

这是预期的行为吗？还是这些组的可见性参数处理存在问题？

---

<div class="post-metadata">

### Author: ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)
#### Post date: [2021年三月4日 01:06 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/2 "2021-03-04T01:06:39Z")

</div>

> [@mdoggydog](#):
>
> 本应如此吗？还是这些组的可见性参数处理存在问题？

代码中有一条评论解释了原因：“将所有非工作人员隐藏自动组，以简化页面。”这发生在：[discourse/app/controllers/groups\_controller.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/app/controllers/groups_controller.rb#L65%E3%80%82)

代码的作用是在非工作人员查看组页面时，覆盖自动组的可见性设置。此时只会显示“版主”组。

与上述问题无关，但当我尝试将上面发布的 GitHub 链接进行 onebox 时，预览中显示的代码没有任何格式：

 ![image](https://global.discourse-cdn.com/meta/original/3X/0/f/0fd52f482beeb4a38a8703c40178d6263977adf5.png)

---

<div class="post-metadata">

### Author: ![mdoggydog](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mdoggydog](https://meta.discourse.org/u/mdoggydog)
#### Post date: [2023年九月28日 01:29 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/4 "2023-09-28T01:29:29Z")

</div>

> [@simon](#):
>
> 该代码的作用是在非员工用户查看群组页面时，覆盖自动群组的群组可见性设置。

嗯，这确实解释了原因。我相信这段代码是出于好意编写的，但它是错误的，因为：

1. 我可能_希望_其他自动群组（除版主外）可见。
2. 自动群组的管理界面_允许_我设置非版主自动群组的可见性，但此设置被_忽略_了。

删除这块代码（以及那个已经存在了 6 年的可爱拼写错误）应该很容易。

棘手的问题是，如果有人认为有必要，可以将自动群组的当前可见性_设置_更改为“群组所有者”，这样这些群组就不会意外地出现在所有习惯于它们被强制设为不可见的安装中。我不知道 Discourse 是否有某种机制可以在升级期间进行此类更改——但这是在进行架构更改时需要做的事情，所以肯定有办法。

---

<div class="post-metadata">

### Author: ![mdoggydog](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mdoggydog](https://meta.discourse.org/u/mdoggydog)
#### Post date: [2023年九月28日 03:48 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/5 "2023-09-28T03:48:06Z")

</div>

另外：这种“尽管有可见性设置，但我们就是要把自动组隐藏在组目录中”的行为很糟糕，因为它掩盖了 `visibility_level` 中仍然有意义的_其他_方面。例如：

- 管理员 X 尝试了可见性设置，并意识到无论如何非员工用户都无法在组目录中看到 `trust_level_0`。
- 因此……管理员 X 将 `visibility_level` 和 `member_visibility_level` 设置为“所有人”，因为这些设置似乎没有任何效果。
- 匿名用户 Z 浏览到 `/groups/trust_level_0` 并获取了网站上所有用户的列表。

也许管理员 X 在乎，也许不在乎，但无论如何，管理员 X 会对成为可能感到惊讶。

> **我之前不知道的无关有趣的知识**
>
> meta.discourse 用户按信任级别分布：
> 
> | 级别 | 用户数 |
> | --- | --- |
> | TL0 | 45,942 |
> | TL1 | 29,226 |
> | TL2 | 3,620 |
> | TL3 | 124 |
> | TL4 | 102 |

---

<div class="post-metadata">

### Author: ![Canapin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/canapin/32/119591_2.png) [@Canapin](https://meta.discourse.org/u/Canapin)
#### Post date: [2023年九月28日 07:50 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/6 "2023-09-28T07:50:34Z")

</div>

你好 mdoggydog 🙂

我觉得有些观点是合理的，比如：

> [@mdoggydog](#):
>
> 自动组的后台管理界面_确实_允许我设置非版主自动组的可见性，但这个设置被_忽略了_。

这确实让人困惑。

建议你创建一个 #Contribute > Feature 主题来提出你的建议 🙂

---

<div class="post-metadata">

### Author: ![mdoggydog](https://avatars.discourse-cdn.com/v4/letter/m/82dd89/32.png) [@mdoggydog](https://meta.discourse.org/u/mdoggydog)
#### Post date: [2023年十月4日 05:35 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/7 "2023-10-04T05:35:41Z")

</div>

> [@Canapin](#):
>
> 我邀请您创建一个#feature::category主题，其中包含您的建议

完成！

> [@Respect the visibility settings of all automatic groups](https://meta.discourse.org/t/respect-the-visibility-settings-of-all-automatic-groups/280998):
>
> (One person’s feature request is another person’s bug report… upside_down_face) The “Groups” index page (e.g., /groups or /g), should respect the visibility settings of the automatic groups, and display them accordingly. It does this for the Moderators group, but not the others. This is due to a hard-coded exception in GroupsController.index(), which causes the other automatic groups to never appear on the index page when viewed by non-staff users, no matter what the visibility settings are…

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2023年十月4日 12:30 UTC](https://meta.discourse.org/t/how-does-visibility-of-automatic-groups-work/181196/8 "2023-10-04T12:30:30Z")

</div>

对话继续于：[Respect the visibility settings of all automatic groups](https://meta.discourse.org/t/respect-the-visibility-settings-of-all-automatic-groups/280998)
