Как импортировать категорию с правами доступа к категории?

При импорте категории из файла существует ли способ гарантировать, что загруженные темы останутся приватными? Я провел тестовый импорт в локальную среду разработки Discourse, и настройки безопасности категории были сброшены: новые темы стали доступны для просмотра всем пользователям.

Я знаю, что могу выполнить import:file[category-export.json], а затем сразу изменить настройки безопасности категории так, чтобы её видели только пользователи определённой группы. Однако меня беспокоит, что происходит в промежуточный период: во-первых, может быть короткий промежуток времени, когда все смогут видеть этот контент, а во-вторых, уведомления по электронной почте могут быть отправлены (или запланированы) всем, даже после изменения настроек.

Так как задача import:file rake принимает только один аргумент (имя файла), похоже, нет способа указать «целевую категорию», в которую нужно сохранить импорт.

Я пробовал сначала создать категорию с тем же именем и слагом, но это завершилось ошибкой:

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

Единственная тестовая тема, включённая в этот JSON-файл, была импортирована, но создана в Uncategorized, что в данном случае хуже, чем создание в открытой категории.

Я обдумывал другие способы сделать это безопасно, но пока не нашёл хороших идей. Есть ли какие-то мысли у сообщества?

Я думаю, что стоит отредактировать скрипт вручную в контейнере, чтобы изменить разрешения.

По умолчанию ограничивать доступ только для сотрудников кажется разумным запросом на новую функцию или, возможно, стоит создать pull request.

Спасибо @pfaffman за быстрый ответ!

На самом деле, похоже, что всё дело в моей собственной глупости, которая проявилась здесь самым очевидным образом.

Поведение по умолчанию для задачи rake import:file (которая вызывает ImportExport::Importer) заключается в точном копировании разрешений из исходной категории. Я узнал об этом только после изучения исходного кода.

И он сделал именно это. Причина, по которой в целевой категории не было тех разрешений, на которые я надеялся, заключалась в том, что я забыл правильно установить их в исходной категории! Я переносил категорию из уже частного форума (весь форум был частным, поэтому в этой категории права были установлены как «Просмотр/Ответ/Создание» для всех) в более открытый форум (в котором эти сообщения должны были находиться в защищённой категории — изначально только «Просмотр/Ответ/Создание» для администраторов).

Я согласен — поскольку импорт категорий можно выполнить только в реальной рабочей среде, было бы неплохо, если бы права по умолчанию устанавливались только для администраторов до тех пор, пока импорт не будет проверен и все не будут удовлетворены результатом. Это лучше, чем спамить пользователей уведомлениями о массовом импорте.

Увы, я не учёл такую возможность. :slight_smile:

Это именно то, что вам нужно!!! :rofl:

Мне было слишком лень делать это самостоятельно!