RGJ
(Richard - Communiteq)
1
The following is happening:
Some users are getting the TL2 welcome notification (“we promoted you up a trust level”) on every login.
This happens under the following circumstances:
- SSO login is enabled where Discourse is the SSO client
- “Sync User Data” is enabled in WP-Discourse so it issues a
sync_sso call every time the user logs into Wordpress
sync_sso is setting a group that has a grant_trust_level which is lower than the current trust level of the user
This causes the trust levels for the user to be recalculated from the ground up and the welcome message to be sent every time.
「いいね!」 6
nat
(Natalie T)
9
こんにちは、
このバグを共有していただきありがとうございます!このバグを再現しようとしましたが、ローカルでは再現できませんでした。以下は私のセットアップです。
(WordPress)
- WordPressユーザー「Steaky」をメールアドレス steaky@cat.com で設定
wpdc_custom_sso_params を追加して、$params['groups'] = 'cats'; でサインインするすべてのユーザーに cats グループを設定
(Discourse)
- ユーザー「Steaky」をメールアドレス steaky@cat.com で作成
- Steaky を正当な方法で
trust_level_3 に設定(ロックされていない)
- グループ「cats」を作成し、「cats」の「メンバーに自動的に付与される信頼レベル」を 2 に設定
WordPress と Discourse は接続済み
ユーザーデータの同期も 
(Discourse)
- Steaky でログインすると、WordPress にリダイレクトされ、サインインすると Discourse にリダイレクトバックされる
- (「cats」が Steaky に設定されていることを確認)
- Steaky はウェルカムメッセージを表示しない
^ 上記を SiteSetting.discourse_connect_overrides_groups で繰り返しても、結果は同じです。
より詳細なセットアップを行っていると思われます。影響を受けているユーザーのセットアップについて、さらに詳しい情報を共有していただけると幸いです。
- 他にオンになっている「Discourse Connect」サイト設定はありますか?
- 影響を受けているユーザーは、特定の信頼レベルを付与するグループに別途参加していますか?
- 影響を受けているユーザーの信頼レベルはロックされていますか?どのようなグループに属していますか?
- その他役立つ情報があれば
ありがとうございます!
「いいね!」 4
RGJ
(Richard - Communiteq)
10
このバグは1年以上前のものですが、その間にクライアントはDiscourseから離れてしまったため、これ以上完全に再現することはできません。しかし、私は常に詳細なメモを取っているので、当時のSSOペイロードの記録さえ持っています。ただし、他の設定を検査したり、その正確なインスタンスで再現を試みたりすることはできません。
メモに戻ります。何が起こったのかは、あなたがやっていることとは少し異なっていました。SSOは空のgroupsフィールド(単にgroups=)を渡していました。しかし、問題のユーザーは、SSOプロバイダーが知らない別のグループのメンバーであり、そのグループがメンバーにTL2を強制していました。
さらに、私の記憶が正しければ、TL2とTL3のウェルカムメッセージは異なる動作をするため、これを再現しようとする場合は、TL3の代わりにTL2を使用する必要があるかもしれません。
したがって、再現するには、次のことを行う必要があると思います。(2番目のグループを導入したことに注意してください)
(WordPress)
- WordPressユーザー「Steaky」をメールアドレス steaky@cat.com で設定します。
$params['groups'] = 'dogs'; でサインインするすべてのユーザーに dogs グループを設定するように wpdc_custom_sso_params を追加します。
(Discourse)
- メールアドレス steaky@cat.com でユーザー「Steaky」を作成します。
- Steakyを正当に(ロックせずに)
trust_level_1にします。
- 「cats」と「dogs」というグループを作成し、「cats」の「メンバーに自動的に付与される信頼レベル」を2に設定します。
- Steakyをグループ
cats のメンバーにします。
「いいね!」 2
RGJ
(Richard - Communiteq)
11
この問題について、さらに調査していただけましたでしょうか?
「いいね!」 1
nat
(Natalie T)
12
前回の返信以降、そのバグの調査は中断していますが、お送りいただいた内容を拝見し、大変参考になりました。素晴らしいログを記録されていることに感銘を受けました。まだ対応中の案件ですので、近いうちに戻ります。ご確認いただきありがとうございます。
「いいね!」 3