# 如何暂时移除用户主题的公开访问？

**URL:** <https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242>\
**Category:** Support\
**Created:** [2023年八月30日 18:58 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242 "2023-08-30T18:58:26Z")\
**Posts on this page:** 11\
**Page:** 2

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年八月31日 02:01 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/21 "2023-08-31T02:01:28Z")

</div>

一个不错的主意，只是它会丢失原始类别。

---

<div class="post-metadata">

**Author:** ![simon](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/simon/32/339122_2.png) [@simon](https://meta.discourse.org/u/simon)\
**Post date:** [2023年八月31日 02:09 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/22 "2023-08-31T02:09:10Z")

</div>

> [@rahim123](#):
>
> 它将丢失原始类别。

原始类别保留在编辑历史记录中：

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/4/9/349aaf2f6a0d2a713be32141df5eb5ae5b7ac639.png)

因此，您只需从编辑历史记录中点击“还原”按钮即可：

 ![image](https://global.discourse-cdn.com/meta/original/4X/0/3/6/036b98a1de7be8953c8831119588e6dad56dfcad.png)

---

<div class="post-metadata">

**Author:** ![ClawdiaWolf](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/clawdiawolf/32/262518_2.png) [@ClawdiaWolf](https://meta.discourse.org/u/ClawdiaWolf)\
**Post date:** [2023年八月31日 02:12 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/23 "2023-08-31T02:12:44Z")

</div>

> [@rahim123](#):
>
> 是的，谢谢，我没有看到任何关于批量取消删除的信息？

你不能，至少不容易。原因如下：

你需要以下信息：

- 用户 ID
- 批量删除发生的 UTC 日期
- 每个已删除主题 OP 的帖子 ID
- 关于使用 rails 控制台和/或直接使用 psql 运行_非常高级_ SQL 查询的先进知识，因为你需要清除主题本身以及作为主题 OP 的帖子的 `deleted_at` 字段。

请不要问我为什么知道这些……

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年八月31日 02:21 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/24 "2023-08-31T02:21:02Z")

</div>

我不确定您正在处理多少个主题，但我想象的是一个半可管理数量，您可以向下滚动主题列表，同时打开批量选择，然后勾选您想要移动到特定类别的主题（对于您不确定的任何主题，可以使用西蒙建议的仅凭记忆或查看编辑历史记录的方式）。然后对下一个重复此操作。

不过，这有点手动，所以根据主题或类别的数量，可能会太麻烦。

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年八月31日 03:24 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/25 "2023-08-31T03:24:45Z")

</div>

感谢您的补充回复。

主题实在太多了，无法手动撤销修订。看起来比较省事的办法是打开所有已删除的主题，然后手动点击“取消删除”按钮（不幸的是，该按钮位于长度可变的原始帖子末尾，因此需要滚动查找每个主题的末尾，然后展开“ **…** ”菜单以显示“取消删除”按钮）。

> [@ClawdiaWolf](#):
>
> > [@rahim123](#):
> >
> > 是的，谢谢，我没有看到任何关于批量取消删除的信息？
> 
> 你不能，至少不容易。原因如下：

我相信后台肯定有相应的处理过程。但我真的不明白，既然已经实现了批量删除，并且已经提供了已删除主题的列表以及批量选择器，为什么不能添加一个用户界面的批量取消删除操作。

---

<div class="post-metadata">

**Author:** ![maiki](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/maiki/32/233950_2.png) [@maiki](https://meta.discourse.org/u/maiki)\
**Post date:** [2023年八月31日 03:36 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/26 "2023-08-31T03:36:59Z")

</div>

> [@rahim123](#):
>
> 但我实在不明白，既然已经实现了批量删除功能，并且已有带批量选择器的已删除主题列表，为什么不能添加一个 UI 批量恢复操作呢？

这属于 #contribute:功能请求。目前该功能尚不存在。🙂

---

<div class="post-metadata">

**Author:** ![hello-smile6](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/hello-smile6/32/304628_2.png) [@hello-smile6](https://meta.discourse.org/u/hello-smile6)\
**Post date:** [2023年九月5日 16:41 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/27 "2023-09-05T16:41:01Z")

</div>

> [@rahim123](#):
>
> 因为这需要手动或以编程方式将它们恢复到之前的修订版本，才能将它们放回正确的类别

你可以为这些主题的每个先前类别添加一个标签（每个类别一个标签），并为每个主题添加一个带有原始类别的标签，然后使用该标签来弄清楚以后主题的去向（并在移动每个主题时删除原始类别标签）

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年九月5日 17:01 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/28 "2023-09-05T17:01:18Z")

</div>

感谢 @hello-smile6 的回复。恢复到之前的修订版也应该会恢复类别，对吗？主要困难在于批量恢复，而未列出的主题可以批量重新列出。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年九月5日 17:40 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/29 "2023-09-05T17:40:10Z")

</div>

您也可以使用批量操作重新分类。我不确定您的类别设置是怎样的，但我想您可以通过知道某个主题应该属于哪个类别，然后扫描主题列表并将一大块移回其原始类别？

---

<div class="post-metadata">

**Author:** ![rahim123](https://avatars.discourse-cdn.com/v4/letter/r/df705f/32.png) [@rahim123](https://meta.discourse.org/u/rahim123)\
**Post date:** [2023年九月5日 18:31 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/30 "2023-09-05T18:31:46Z")

</div>

嗯，我不这么认为。这些主题最初分布在至少 5 个不同的类别中，即使我为它们打上了标签或以某种方式知道了原始类别，仍然需要单独手动选择每个主题才能批量重新分类所有应该归入特定类别的主题。

---

<div class="post-metadata">

**Author:** ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)\
**Post date:** [2023年九月5日 19:03 UTC](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242/31 "2023-09-05T19:03:50Z")

</div>

这很酷。很多都取决于您的设置，因此它可能不适用于所有人或所有情况。

作为一种额外的技巧，供您参考，您可以使用 shift+select 技巧来选择连续的一系列项目，这有时比单独勾选每个项目更容易。

[上一頁](https://meta.discourse.org/t/best-way-to-temporarily-remove-public-access-to-a-users-topics/277242.md?page=1)
