# 即将举行的活动 - 未列出在类别中但在即将举行的活动中可见

**URL:** <https://meta.discourse.org/t/upcoming-events-unlisted-is-invisible-in-category-but-visible-in-upcoming-events/363486>\
**Category:** UX\
**Tags:** events\
**Created:** [2025年四月25日 17:13 UTC](https://meta.discourse.org/t/upcoming-events-unlisted-is-invisible-in-category-but-visible-in-upcoming-events/363486 "2025-04-25T17:13:59Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![tkforbes](https://avatars.discourse-cdn.com/v4/letter/t/e95f7d/32.png) [@tkforbes](https://meta.discourse.org/u/tkforbes)\
**Post date:** [2025年四月25日 17:13 UTC](https://meta.discourse.org/t/upcoming-events-unlisted-is-invisible-in-category-but-visible-in-upcoming-events/363486/1 "2025-04-25T17:13:59Z")

</div>

今天早上，我需要取消几个活动的列表，以防止他们在我修改帖子时显示。我注意到这些活动对我的普通用户是隐藏的，但对于相同的用户，这些活动仍然可以通过“即将到来的活动”日历查看和访问。

这是一个自托管的实例，最近刚刚更新（几周前）。

---

<div class="post-metadata">

**Author:** ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)\
**Post date:** [2025年四月25日 17:39 UTC](https://meta.discourse.org/t/upcoming-events-unlisted-is-invisible-in-category-but-visible-in-upcoming-events/363486/2 "2025-04-25T17:39:19Z")

</div>

这并非完全出乎意料（尽管我明白这可能令人困惑），当一个话题被设为“未列出”时，即使是普通用户，如果直接访问网址，仍然可以访问该内容……所有“未列出”所做的仅仅是从话题列表中移除该话题。我们需要添加一些额外的逻辑，以便在话题被设为“未列出”时，也将其活动设为“未列出”。

与此同时，如果你想在编辑时向普通用户隐藏一个话题和活动，可以将它移动到一个普通用户无法访问的类别。

---

<div class="post-metadata">

**Author:** ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)\
**Post date:** [2026年六月25日 14:47 UTC](https://meta.discourse.org/t/upcoming-events-unlisted-is-invisible-in-category-but-visible-in-upcoming-events/363486/3 "2026-06-25T14:47:06Z")

</div>

我认为这个问题已在 [Events from unlisted topics show on calendar](https://meta.discourse.org/t/events-from-unlisted-topics-show-on-calendar/406032/) 中再次报告。

在此附上修复链接：

> <https://github.com/discourse/discourse/pull/41194>
>
> Previously, the calendar — along with the \`/upcoming-events\` page and the \`.ics\`… subscription feed — listed events from unlisted topics to everyone, because \`EventFinder\` scoped events with \`Topic.listable\_topics\`, which only excludes private messages and never filters out unlisted (\`visible: false\`) topics. Unlisting a topic (manually, or as a side effect of spam flagging or a moderator action) therefore removed it from the topic list but left its event on the calendar for all users.
> 
> This change makes \`EventFinder\`'s \`listable\_topics\` apply the \`visible\` scope unless the user can see unlisted topics (\`Guardian#can\_see\_unlisted\_topics?\`), mirroring how \`TopicQuery\` filters topic listings: staff and TL4 users still see events from unlisted topics, while everyone else no longer does.
> 
> Meta: https://meta.discourse.org/t/events-from-unlisted-topics-show-on-calendar/406032
