# 为匿名和登录用户设置基于组的细粒度权限

**URL:** <https://meta.discourse.org/t/granular-group-based-permissions-for-anonymous-and-logged-in-users/402273>\
**Category:** Announcements\
**Tags:** groups\
**Created:** [2026年五月13日 01:18 UTC](https://meta.discourse.org/t/granular-group-based-permissions-for-anonymous-and-logged-in-users/402273 "2026-05-13T01:18:57Z")\
**Posts on this page:** 1\
**Showing post:** 24

<div class="post-metadata">

**Author:** ![Lilly](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lilly/32/575047_2.png) [@Lilly](https://meta.discourse.org/u/Lilly)\
**Post date:** [2026年七月20日 00:30 UTC](https://meta.discourse.org/t/granular-group-based-permissions-for-anonymous-and-logged-in-users/402273/24 "2026-07-20T00:30:29Z")

</div>

嘿 Martin - 有个问题：

我刚刚对实例进行了完整更新，现在正在根据这里的自动组 ID，将 `disallowed_groups` 对象设置添加到我的组件中，针对 `everyone`（所有人）和 `anonymous_users`（匿名用户）：

> <https://github.com/discourse/discourse/blob/fc8df41adbc81a773763480b7efa8c1cf7cee58c/app/models/group.rb#L107-L118>

像这样：

```yml
      groups:
        type: groups
        disallowed_groups: "0|4"
        required: true
        resolve_group_membership: true
        validations:
          max: 20

```

但在组件组下拉设置中仍然显示 `everyone`（所有人）：

 ![Screenshot 2026-07-19 at 5.21.44 PM](https://global.discourse-cdn.com/meta/original/4X/4/6/0/460a463c4a26a3b89888aae97acd2325c33ca05b.png)

我在对象设置中哪里做错了？我注意到即使对象中没有 `disallowed_groups`，它也不会显示 `anonymous_users`（匿名用户）组（所以目前，无论我是否设置 `disallowed_groups`，我组件中的列表都没有区别）。我用其他组 ID 进行了测试，我在使用 `disallowed_groups`（或语法）时一定做错了什么，因为无论使用哪些 ID，它似乎都没有任何效果。

---

_[View the full topic](https://meta.discourse.org/t/granular-group-based-permissions-for-anonymous-and-logged-in-users/402273)._
