Эта ошибка существует уже более года, и за это время клиент перешёл с Discourse, поэтому я больше не могу полностью воспроизвести её. Однако я всегда веду подробные заметки, поэтому у меня есть запись SSO-полезных нагрузок того времени. К сожалению, я не могу проверить другие настройки и/или попытаться воспроизвести проблему на том же экземпляре.
Вернёмся к моим заметкам. Ситуация была немного иной по сравнению с тем, что делаете вы. SSO передавал пустое поле групп (просто groups=). При этом пользователи, о которых идёт речь, состояли в другой группе, неизвестной провайдеру SSO, которая принудительно устанавливала уровень доверия TL2 для своих участников.
Кроме того, приветственные сообщения для уровней доверия TL2 и TL3, насколько я помню, работают по-разному, поэтому при попытке воспроизвести проблему вам, возможно, придётся использовать TL2 вместо TL3.
Таким образом, для воспроизведения, как я думаю, вам нужно сделать следующее (обратите внимание, что я добавил вторую группу):
(WordPress)
Создайте пользователя WordPress «Steaky» с адресом электронной почты steaky@cat.com
Добавьте wpdc_custom_sso_params, чтобы установить группу dogs для всех пользователей, которые входят в систему, используя $params['groups'] = 'dogs';
(Discourse)
Создайте пользователя «Steaky» с адресом электронной почты steaky@cat.com
Легитимно установите для Steaky уровень доверия trust_level_1 (без блокировки)
Создайте группы «cats» и «dogs» и установите параметр «Уровень доверия, автоматически предоставляемый участникам» на 2 для группы «cats»
Я приостановил изучение этой ошибки после своего последнего ответа, но я ознакомился с вашими замечаниями и очень ценю их! Поразительно, что у вас есть такой подробный лог. Это всё ещё в моей работе, и я скоро вернусь к этому, так что спасибо, что написали.