如何导入带有类别权限的类别

导入分类文件时,有什么方法可以确保上传的主题保持私有吗?我在本地的 Discourse 开发环境中进行了测试导入,分类安全设置被重置了,导致新主题对所有人可见。

我知道可以运行 import:file[category-export.json] 命令,然后立即将分类安全性更改为仅对特定用户组中的用户可见,但我担心在此期间会发生什么——首先,可能有一小段时间对所有人可见该内容,其次,即使更改了设置,电子邮件通知也可能已发送(或已安排发送)给所有人。

由于 import:file rake 任务只有一个参数(文件名),因此似乎无法设置我希望导入存储的“目标分类”。

我尝试先创建具有相同分类名称和 slug 的分类,但这会失败并出现错误:

Failed to import category (ID = 5, name = CATEGORY_NAME): Validation failed: Category Name has already been taken, Slug is already in use

我在该 .json 文件中包含的单个测试主题已导入,但它被创建在 Uncategorized 中,这比创建在公开可见的分类中更糟糕。

我一直在思考其他安全地完成此任务的方法,但目前还没有什么好主意。社区有什么想法吗?

1 个赞

我认为我会手动编辑容器中的脚本以更改权限。

将其默认设置为仅限员工似乎是一个合理的功能请求或拉取请求。

感谢 @pfaffman 的快速响应!

实际上,这似乎只是我愚蠢的表现。

import:file rake 任务(它调用 ImportExport::Importer)的默认行为是从源类别精确复制权限。我只是通过查看源代码才发现这一点。

它确实是这样做的。我的目标类别没有我期望的权限的原因是我忘记在源中正确设置这些权限了!我将一个类别(在一个已经私有的论坛中(整个论坛都是私有的,所以该类别对其中的所有人都是可见/回复/创建的))移动到一个更开放的论坛(其中帖子需要在一个安全类别中——最初仅对管理员可见/回复/创建)

我同意——由于类别导入是只能在实际的生产环境中完成的事情,因此在导入完成后并确认一切正常之前,可能希望将权限默认设置为仅管理员。这比向用户发送有关批量导入通知要好。

2 个赞

唉,我 hadn’t 没考虑到那种可能性。 :slight_smile:

这正是你想要的!!! :rofl:

我自己太懒了,没去查!

1 个赞