匿名ユーザーに親ユーザーグループの継承を許可

こんにちは!

こちらのPRのレビューをお願いできますでしょうか?

特定の地域に限定されたディスコースを作成しようとしており、ユーザーのメンバーシップによって特定のグループに制限されますが、現在これは匿名ユーザーのサポートと競合しています。匿名ユーザーにはグループの関連付けがないためです。

このPRは、匿名ユーザーにグループの関連付けを追加します。

「いいね!」 1

これにより可能になる、匿名化解除攻撃のリスク増加について検討されましたか?

「いいね!」 2

このトピックを取り上げていただきありがとうございます!

匿名化攻撃について検討しましたが、おっしゃる通り、ユーザーグループの継承は誰にでも使えるツールではなく、特に高カーディナリティのグループ所属を持つインスタンスでは脆弱です。PRで詳述したように、当初のコンセプトは、リージョングループでの匿名投稿をサポートすることであり、これは私たちのインスタンスでは暗黙的に低カーディナリティになります。

編集:匿名ユーザーの継承というグループ属性を追加しました。これにより、管理者はグループが匿名ユーザーによって継承されるかどうかを選択できます。また、機能の有効化に関する管理設定の横に警告を追加しました。さらに提案があれば、いつでもお待ちしています。

「いいね!」 1

これはPRレビューをリクエストするのに適切なカテゴリですか、それとも別のカテゴリにクロス投稿すべきですか?

ありがとうございます!

「いいね!」 1

コードレビューを依頼する適切なカテゴリが特にないため、ここが最も適していると思われます。

PRは歓迎されることが多いですが、本格的に取り掛かる前に、それがDiscourseが推進したい方向性/機能であるかを確認することをお勧めします。

あるいは、この機能をプラグインとして導入することを検討すれば、メインコードに折りたたむことなく利用できるようになります。

「いいね!」 2

ヒントありがとうございます!プラグインは私たちの用途に適していますが、この変更にはデータベースの移行が必要になります。プラグインで移行は可能でしょうか?

「いいね!」 1

はい、プラグインでデータベースマイグレーションを実行できます。

「いいね!」 1

はい、可能ですが、IMOではプラグインでコアテーブルを変更するのは悪い習慣です。

これをプラグインに移動する場合、group_custom_fields または独自の指定されたテーブルを使用する方が良いでしょう。

この特定のケースでは、代わりに「許可される継承グループ」のようなサイト設定を追加し、管理者がこの単一の設定に継承できるすべてのグループを選択するようにすることもできます。これにより、物事ははるかにシンプルになり、プラグインによって提供されるすべての機能が1か所にグループ化されます。

「いいね!」 5

フィードバックありがとうございます、Richard! 2番目の提案について理解を深めるのを手伝っていただけますか?

管理者がこの単一の設定に継承できるすべてのグループを選択できるようにする
私の理解を確認するために、一般的なサイト設定でグループ継承を許可し、次に各個々のグループの設定ページに、このグループが継承可能かどうかを示すチェックボックスがあるという提案でしょうか?それは現在のものと似ていますが、冗長な設定が削除されます。

管理者がこの単一の設定に継承できるすべてのグループを選択できるようにする
上記を提案されましたか、それとも何か他に考えていましたか?私の元のアイデアは、チェックボックスメニューのような選択ツールを構築することでしたが、それは実装が非常に複雑になりました。

プラグインに関するヒントもありがとうございます!将来の貢献でプラグインオプションを検討します。:grinning_face:

「いいね!」 1

いいえ、グループページの設定ではなく、継承可能なすべてのグループを含むサイト全体の単一の設定にすることを提案しています。

同様の設定として、管理者 - 設定 - ユーザー - 匿名投稿許可グループ があります。これは、すべてのグループ設定ページにある「このグループの匿名投稿を許可する」というチェックボックスではなく、匿名投稿を許可するすべてのグループを含む単一の設定です。

または、管理者 - 設定 - 投稿 - 「このグループのメンションを許可する」というチェックボックスではなく、ここでメンションを許可するグループ があります。

実装が容易で、データベースの乱雑さが少なく、フォーラム管理者がより適切に管理できます。

「いいね!」 2