新しいカテゴリ権限:投稿/返信は可能だが、閲覧は不可

こんにちは。

新しいDiscourseプラットフォームを構築中なのですが、特定の問題についてご協力をお願いしたいことがあります。開発予定のDiscourseプラットフォームでは、特定のカテゴリ内のコンテンツをトピック作成者と管理者のみが表示できるように設定したいと考えています。このセクションは、基本的に「バグレポート」のコンセプトで運用する予定です。報告されたバグは、他のユーザーに見られたり、悪用されたりすることなく、報告者と管理者のみが表示できるようにすることが重要です。このような設定を正確に実現するにはどうすればよいでしょうか?

「いいね!」 1

hi @anilguven Metaへようこそ :wave:

バグレポーター用のグループを作成し、保護したいカテゴリのセキュリティ設定を使用して、そのグループと管理者のみ(またはモデレーターにアクセスさせたい場合はスタッフ)がアクセスできるようにすることができます。

管理者 - グループ - +新規グループ

保護したいカテゴリのカテゴリページで、右上にあるレンチアイコンをクリックすると、セキュリティを含むそのカテゴリの設定にアクセスできます。そこで、希望する権限を持つ新しいグループを追加できるはずです。

「いいね!」 1

こんにちは、@Lillinatorさん、ご返信ありがとうございます。ご提案をテストしたところ、グループのメンバーはすべての投稿を閲覧できるようになります。実際、私の目標は、トピックが作成者のみに表示されるようにすることです。他のユーザーは、他のユーザーが作成したトピックを知るべきではなく、いかなるやり取りにも関与しないようにする必要があります。

たとえば、ユーザーAがバグレポートカテゴリに問題を報告するための重要なトピックを作成したとします。このトピックは、同じフォーラムのユーザーB、C、またはDには表示されないはずです。トピックを作成したユーザーA、およびモデレーターと管理者にのみ、ユーザーAが開いたトピックを表示できるようにする必要があります。

「いいね!」 1

なるほど。うーん、これが可能かどうかは実はよくわかりません。誰か他の人が知っているかもしれません。プラグインが可能かどうか疑問です。:thinking: 申し訳ありませんが、バグレポート投稿者グループではなく、バグレポート投稿者のみがアクセスできるようにしたいということだと誤解していました。

「いいね!」 1

こんにちは、そしてようこそ @anilguven :slight_smile:

グループ受信トレイがこれに適していると思います。ユーザーAが @bug-report にメッセージを送信すると、それは @bug-report グループ受信トレイに表示され、グループ内の全員がそれを見ることができますが、メッセージの参加者のみが個別のメッセージを見ることができます。そのようなものでうまくいきますか?

「いいね!」 5

こんにちは、@JammyDodger さん、ありがとうございます :slight_smile:

ご提案は理解しましたが、フォーラムプラットフォームのような件名として構築する必要があります。このトピックには特定のテンプレートがあり、ユーザーはこのテンプレートに従ってバグを報告することが期待されています。

受信したバグ通知は、モデレーターによってレビューされ、その後管理者に伝えられます。トピックを開始した個人は、管理者からトピックを通じて直接、自分のレポートに関連する応答も提供されます。従来のフォーラムとまったく同じように機能しますが、唯一の違いは、トピックは作成者のみが表示できるという点です。

「いいね!」 2

これは長い間切望していたもので、ここで#4として、まったく同じユースケースで説明しました。Offering "private support" as part of a public support community

グループ受信トレイは、このような理由で、本質的にいくつかの点で欠陥があると考えています。

プラグインで実現可能ですが、正しく実装するには時間がかかるかもしれません。まだ時間も、その労力に見合うだけの正当性も見出せていません(予算や開発スキルがあれば、ぜひお話ししましょう)。

「いいね!」 4

納得し始めています。

トピックレベルの権限ではなく、単なる別のカテゴリ権限です。一部の機能がどのように機能するかは想像できますが、どうすればよいかわからないことがたくさんあります。

面白そうなプロジェクトになりそうです。今は手伝えませんが、1、2ヶ月後に時間があれば、私に連絡してください。一緒に取り組めるかもしれません。もちろん、誰かが支払ってくれれば、時間を見つけるのはもっと簡単でしょう!

「いいね!」 2

実際、この機能は他のフォーラムプラットフォームでの存在と同様に、ここにもコンポーネントとして存在するべきです。一般的なニーズに対応しているため、その不在はむしろ不可解です。その結果、私はいくつかの調査を開始しましたが、残念ながら私の試みは望ましい結果をもたらしませんでした。この要件は特に作成/返信の権限に関係しますが、トピックの作成者と管理者のみが閲覧権限を持つことになります。

「いいね!」 1

読み取り権限を含まない作成権限があり、ユーザーが作成したトピックの読み取りを許可します。したがって、新しいタイプがここに追加されます:

~~discourse/app/models/category_group.rb at main · discourse/discourse · GitHub

そして、それらのタイプを参照する多くのコードを変更する必要があります。または、プラグインの場合、作成制限をバイパスして、現在利用可能なトピックを含めるようにカテゴリとトピックのシリアライザーを更新するCategoryCustomFieldを追加する方が理にかなっているかもしれません。

作成権限を持つカテゴリにトピックを作成し、after_create(または同様のもの)でプラグインがスタッフのみが表示できるサブカテゴリに移動させる可能性があります。その後、カテゴリシリアライザーを修正して、非表示のサブカテゴリからユーザーが所有するトピックをカテゴリにプルすることができます。これには新しいカテゴリ権限はまったく必要なく、プラグインが削除された場合、トピックはスタッフ専用カテゴリの通常のトピックになります。この概念実証(適切な仕様などなし)は、それほど時間はかからないかもしれません。今日中にこれを調べるかもしれませんが、(他の仕事があるかもしれないので)心配です。

「いいね!」 6

そこで、金曜日に犠牲を払ってこれを実装することにしました。試していただけると嬉しいです。

「いいね!」 6