私のインスタンスにあるステージドユーザーは、プライベートカテゴリの投稿に対してメール通知を受け取っていません。許可を与えるグループに追加された場合でも同様です。これは、Discourse の最近の変更により機能しなくなったようです。
再現手順:
- ステージドユーザーを作成する
-
特定のグループにのみ表示されるカテゴリを作成する(メンバーは「作成/返信/閲覧」が可能だが、他の権限は割り当てていない)
-
「グループへの一括追加」ボタンでステージドユーザーのメールアドレスを入力し、そのユーザーをグループに追加する
- 「メンバーを追加」ダイアログボックスはステージドユーザーのユーザー名を認識しません(おそらく仕様によるものです)
- ただし、ユーザーはメンバーリストに表示されます
-
ステージドユーザーの設定ページに移動し、そのカテゴリを「監視中」に設定する
-
プライベートカテゴリに新しい投稿を作成する
コミュニティの開発サイト(v2.4.0.beta3 +10 実行中)では、ステージドユーザーおよびそのカテゴリを監視している他の非ステージドユーザーに対して、正常にメール通知が送信されます。
一方、2.4.0.beta9 を実行中の本番サイトでは、投稿に関する通知がユーザーの通知ページに表示されません。その後、管理ページでユーザーの「なりすまし」をクリックしてステージド状態を解除すると、通知が正常に届くようになります。
2 つのサイトはほぼ同一の設定です(両方で SSO が有効になっています)。
背景
当社のユースケースは、メーリングリストを Discourse へ移行することですが、これらのリストはコミュニティ内のプライベートなサブグループ向けです(そのため、特定のグループのメンバーにのみ表示されるカテゴリを作成しています)。また、メールでのやり取りを継続することを希望する方のために、移行をスムーズにするためステージドユーザーのサポートも提供したいと考えています。
メーリングリストに送信されるすべてのメッセージをデフォルトで受け取り続ける最も簡単な方法(Discourse への移行の主な利点の 1 つは、リストから完全に離脱せずにメールの量を抑えられるようになることですが、まずは既存の「すべて受信」の動作から始めるのが妥当と思われます)は、Mozilla の group-category-notification プラグイン を使用し、グループの全メンバーがカテゴリを「監視中」に設定することです。
ステージドユーザーをグループに追加する機能が「いつ停止するかわからない」 と聞いたことがありますので、他のアイデアも歓迎します 
「いいね!」 1
eviltrout
(Robin Ward)
2
最近、ステージングユーザーが本来閲覧できないコンテンツの通知を受け取っていたため、修正を追加しました。
@Roman、ユーザーがそのグループにアクセス権を持っているなら、正しく動作するはずです。
「いいね!」 5
@eviltrout ありがとうございます、まさに問題のようです。
# lib/guardian/topic_guardian.rb, 152 行目
- can_see_category?(topic.category)
+ category = topic.category
+ can_see_category?(category) &&
+ (!category.read_restricted || !is_staged? || topic.user == user)
ロジックが、can_see_category?(topic.category) が通過するかどうかをチェックするもの(以下に示す通り、これは通過していると思います)から、ユーザーがステージングされている場合、すべてのケースで通知を許可しないように変更されています。
これはバグではないでしょうか?
そうでなければ、ステージングされたユーザーは、明示的に許可されていても、プライベートカテゴリの投稿に対する通知を一切受け取れなくなります。Contribute > Bug に移動すべきでしょうか?
can_see_category?
最後の行のせいで、can_see_category? は通過していると思います。
def can_see_category?(category)
return false unless category
return true if is_admin?
return true if !category.read_restricted
return true if is_staged? && category.email_in.present? && category.email_in_allow_strangers
# これ:
secure_category_ids.include?(category.id)
end
- ユーザーはステージングされています
- カテゴリには「メール受信」アドレスが設定されています
category.email_in_allow_strangers が有効になっている 私は email_in_allow_strangers を無効にしました。必要ないと気づいたからです… しかし secure_category_ids.include?(category.id) は true を返します
「いいね!」 1
ステージングされたユーザーへの通知を復元するプルリクエストを提出しました:
編集:マージされました!皆さんありがとう
「いいね!」 6
system
(system)
クローズされました:
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.