이 버그는 1년 이상 지난 것이며, 그 사이 클라이언트가 Discourse에서 떠났기 때문에 더 이상 완전히 재현할 수 없습니다. 그러나 저는 항상 상세한 메모를 작성하기 때문에 당시 SSO 페이로드 기록도 보유하고 있습니다. 다만 해당 인스턴스의 다른 설정을 확인하거나 정확한 재현을 시도하는 것은 불가능합니다.
제 메모로 돌아가 보겠습니다. 당시 발생한 상황은 여러분이 하려는 것과 약간 달랐습니다. SSO는 빈 groups 필드를 전달하고 있었습니다(단순히 groups=). 그러나 문제가 된 사용자는 SSO 제공자가 알지 못하는 다른 그룹의 멤버였으며, 이 그룹은 멤버들에게 TL2를 강제하고 있었습니다.
또한 제 기억에 따르면 TL2와 TL3의 환영 메시지는 동작 방식이 다르므로, 재현을 시도할 경우 TL3 대신 TL2를 사용해야 할 수 있습니다.
따라서 재현을 위해 생각컨대 다음 단계를 수행해야 합니다. (두 번째 그룹을 도입했음을 유의하세요)
(Wordpress)
- 이메일 steaky@cat.com로 WordPress 사용자 "Steaky"를 설정합니다.
wpdc_custom_sso_params를 추가하여$params['groups'] = 'dogs';로 로그인하는 모든 사용자에게dogs그룹을 설정합니다.
(Discourse)
- 이메일 steaky@cat.com로 사용자 "Steaky"를 생성합니다.
- Steaky의 신뢰 수준(trust level)을 정당한 방법으로(잠금 해제된 상태로)
trust_level_1로 설정합니다. - “cats” 및 “dogs” 그룹을 생성하고, "cats"의 "멤버에게 자동으로 부여되는 신뢰 수준(Trust level automatically granted to members)"을 2로 설정합니다.
- Steaky를
cats그룹의 멤버로 만듭니다.