martin
(Martin Brennan)
23
没问题!很高兴 disallowed_groups 能帮上忙。我已经合并了那个 PR。
既然我们现在有了 disallowed_groups 和 resolve_group_memberships,我需要全面检查一遍所有的官方主题和组件。建议你和 @moin 在方便的时候也对你们自己的主题和组件进行同样的检查,因为在我对官方仓库进行修改之后,我非常希望能推进将原帖中提到的变更设为“稳定版”(stable)。
目前有许多其他核心工作都依赖或使用了 anonymous_users 和 logged_in_users,我非常希望能删除 everyone 这个组。
2 个赞
Lilly
(Lillian )
24
嘿 Martin - 有个问题:
我刚刚对实例进行了完整更新,现在正在根据这里的自动组 ID,将 disallowed_groups 对象设置添加到我的组件中,针对 everyone(所有人)和 anonymous_users(匿名用户):
像这样:
groups:
type: groups
disallowed_groups: "0|4"
required: true
resolve_group_membership: true
validations:
max: 20
但在组件组下拉设置中仍然显示 everyone(所有人):
我在对象设置中哪里做错了?我注意到即使对象中没有 disallowed_groups,它也不会显示 anonymous_users(匿名用户)组(所以目前,无论我是否设置 disallowed_groups,我组件中的列表都没有区别)。我用其他组 ID 进行了测试,我在使用 disallowed_groups(或语法)时一定做错了什么,因为无论使用哪些 ID,它似乎都没有任何效果。
4 个赞
martin
(Martin Brennan)
25
哦,今天早些时候 GitHub 上出现了一些问题,所以 disallowed_groups 的更改才刚刚合并到最新的 Commits · discourse/discourse · GitHub 中。
我不完全确定这就是问题所在,但你能再试一次更新,看看问题是否仍然存在吗?如果没有,请告诉我,并指向你的主题组件(或者只是你的群组侧边栏组件?),以便我进行调试 
1 个赞
Moin
26
我想这是因为你用于测试的那个论坛禁用了即将生效的更改。我已经启用了它,现在该组可见了。
我还更新了论坛,
everyone 和
anonymous_users 组按预期被隐藏了。
澄清一下:两周前是我禁用了这项更改 
3 个赞
Lilly
(Lillian )
27
哈哈
谢谢 Moin! 我其实忘了新的细粒度群组设置本来就在即将推出的更新里。
Martin,disallowed_groups 对象设置运行得完美无缺。 我非常喜欢这个改动。再次感谢团队——真是个大改进。

5 个赞
请问匿名用户和已注册用户的 CSS 类名是什么?我没有使用它们的内部 ID,因为我使用的是纯 CSS。
martin
(Martin Brennan)
29
我们默认不会将这些 CSS 类添加到 body 元素上,您是指 CSS Classes for Current User's Groups 吗?
该组件需要更新,以便根据是否存在当前用户,添加 group-anonymous 或 group-logged-in-users 类。
2 个赞
Lilly
(Lillian )
30
嘿,马丁 
我开了一个快速的 PR 来添加这两个类(anonymous_users 和 logged_in_users)。
我还没怎么测试过(哈哈),但我觉得这挺直观的。代码只是检查当前用户是否存在,如果存在,则属于 logged_in_users,否则就是 anonymous_users。
注意: 我几乎可以肯定 Discourse 会自动添加 .anon,所以无需该组件也能实现匿名与已登录用户的 CSS 区分,但这只是简单地使用了新的群组约定。
2 个赞
martin
(Martin Brennan)
31
哦,对,你说得对,我之前没注意到,我只看了 <body> 标签:
不过我还是批准了你的组件 PR,我觉得这样没问题 
2 个赞
martin
(Martin Brennan)
33
另外,顺便告知大家,我之前还没有在这里发帖,但我已经合并了这些 PR,以便官方组件使用 resolve_group_membership 和 disallowed_groups:
我现在正在制定此次即将进行的变更的后续步骤计划。我认为在核心/插件代码库中,仍有一些地方直接查看 everyone 或者在服务器端未使用 user.in_any_groups?。
2 个赞