@moin 这个 PR DEV: Add resolve_group_membership functionality to theme settings - Pull Request #41360 - discourse/discourse - GitHub 已经合并,我正在 DEV: Docs for theme setting resolve_group_membership - Pull Request #41537 - discourse/discourse - GitHub 中添加文档。我通过 DEV: Use resolve_group_membership core theme functionality - Pull Request #37 - discourse/discourse-copy-post - GitHub 修复了 discourse-copy-post,现在我正在检查我们的其他官方插件,看看是否有其他插件需要相同的处理(例如,你已经指出了 GitHub - discourse/discourse-unanswered-filter · GitHub )
对于你自己的 Filter Favorites ,你可以参考我做的 copy-post 示例,但基本上你需要在 default_favorite_filters_groups 和 custom_favorite_filters_allowed_groups 中添加 resolve_group_membership: true,然后它们将根据用户的组成员身份在 settings 中作为布尔值可用,分别为 settings.user_in_default_favorite_filters_groups 和 settings.user_in_custom_favorite_filters_allowed_groups,你现在不再需要在前端手动检查用户组 ID。
我会将你的主题组件中 default_favorite_filters_groups 的默认值更改为 4|5,即已登录和匿名用户,而不是即将废弃的 0 (everyone)。
我会记下在移除 everyone 组时对主题设置运行数据库迁移,我也需要对站点设置执行一次迁移,这将在即将到来的更改在接下来几周内变为永久时发生(具体取决于是否会出现其他问题,以及我修复其他需要添加 resolve_group_membership 的主题/组件的速度)。
目前还没有像站点设置那样的方法来实现这一点……我认为现在没有必要添加,你只需在设置描述中提及这一点,并无论如何在前端使用 currentUser 进行防护即可。也许未来如果有更多需求,我会添加这个功能。