Эта ошибка существует уже более года, и за это время клиент перешёл с 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»
- Добавьте Steaky в группу
cats