カテゴリ権限付きカテゴリのインポート方法

ファイルをインポートする際に、アップロードされたトピックをプライベートに保つ方法はありますか?ローカルのDiscourse開発環境にテストインポートを実行したところ、カテゴリのセキュリティ設定がリセットされ、新しいトピックは「全員」が閲覧できるようになってしまいました。

import:file[category-export.json] を実行してからすぐに、カテゴリのセキュリティ設定を特定のグループのユーザーのみが閲覧できるように変更することはできますが、その間の時間について懸念があります。まず、一時的に「全員」がそのコンテンツを見ることができる期間がある可能性があり、次に、設定を変更した後でも、メール通知が「全員」に送信される(またはスケジュールされる)可能性があります。

import:file rakeタスクは1つの引数(ファイル名)しか取らないため、インポートを保存したい「宛先カテゴリ」を設定する方法はないようです。

同じカテゴリ名とスラッグでカテゴリを先に作成しようとしましたが、次のエラーで失敗しました。

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

コンテナ内でスクリプトを手動で編集して、権限を変更すると思います。

デフォルトでスタッフのみにするのは、妥当な機能リクエストまたはプルリクエスト(PR)になるでしょう。

迅速なご対応ありがとうございます、@pfaffman

実は、これは私のうっかりミスだったようです。

import:file rake タスク(ImportExport::Importer を呼び出します)のデフォルトの動作は、ソースカテゴリの権限をそのままコピーすることです。これは、ソースコードを確認して初めて知りました。

そして、まさにその通りに動作しました。宛先カテゴリに期待していた権限がなかった理由は、ソースでそれらの権限を正しく設定するのを忘れていたためです!私は、すでにプライベートなフォーラム(フォーラム全体がプライベートなので、そのカテゴリは全員が閲覧/返信/作成可能でした)にあるカテゴリを、よりオープンなフォーラム(そこで投稿を、最初は管理者のみが閲覧/返信/作成可能というセキュアなカテゴリに入れる必要がありました)に移動していました。

同意します。カテゴリのインポートは実際のライブ環境でしか行えないことが多いため、インポートが確認され、すべてが問題ないことに満足するまで、権限をデフォルトで管理者のみにするのが良いかもしれません。ユーザーに一括インポートに関する通知をスパムするよりも良いでしょう。

「いいね!」 2

残念ながら、その可能性は考慮に入れていませんでした。:slight_smile:

まさにそれが望ましいことです!!! :rofl:

自分でやるには怠惰すぎました!

「いいね!」 1