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

**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:** 18

<div class="post-metadata">

**Author:** ![martin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/martin/32/491371_2.png) [@martin](https://meta.discourse.org/u/martin)\
**Post date:** [2026年七月9日 23:42 UTC](https://meta.discourse.org/t/granular-group-based-permissions-for-anonymous-and-logged-in-users/402273/18 "2026-07-09T23:42:45Z")

</div>

> [@Moin](#):
>
> 我认为它被用于，例如，Discourse 群组侧边栏菜单中，以便管理员配置哪些群组应该能够看到每个侧边栏部分，并且它被用于通知横幅中，以配置每个横幅的可见性。  
> 我假设你也会在广告组件中使用它。但似乎它依赖于群组名称的字符串。  
> 我倾向于优先使用群组类型设置，因为它们帮助管理员通过下拉菜单轻松输入群组，同时它们依赖于群组 ID，与名称相比，ID 更不容易改变。而且我认为，如果对象设置中的群组列表和列表类型的工作方式不同，会造成混淆。

好的，感谢找到示例，需要将此更改整合到具有群组类型的主题设置对象中。例如，这个来自群组侧边栏菜单的，我认为我会让它以相同的方式工作，这样你在配置中会有：

```yaml
groups:
  type: groups
  required: true
  resolve_group_memberships: true
  validations:
    max: 20

```

然后在客户端，`groups` 将变为 `user_in_groups` 作为布尔值。

`disallowed_groups` 功能实际上可能并不难……再次参考上面的内容，你会得到这个以去除 `anonymous_users`：

```yaml
groups:
  type: groups
  required: true
  resolve_group_memberships: true
  disallowed_groups: "4"
  validations:
    max: 20

```

而对于常规群组类型的主题设置：

```yaml
copy_button_allowed_groups:
  type: list
  list_type: group
  default: "11" # trust_level_1
  disallowed_groups: "4" # anonymous_users
  description: "选择允许使用复制按钮的群组。"
  resolve_group_membership: true

```

将看看是否添加此功能。

---

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