자바스크립트/플러그인 API를 통해 사용자 정의 필드 접근

안녕하세요, Our solution for blurring NSFW content - #5 by bartv 의 기능을 구현하려고 시도했지만, 불행히도 해당 코드가 더 이상 작동하지 않습니다.
여기서 막혀서 Discourse JavaScript API 전반에 대한 문서나 사용자 정의 사용자 필드를 가져오는 방법에 대한 문서를 찾지 못했습니다.

사이트 테마의 header.html 섹션에 링크된 코드 스니펫을 추가해 보았습니다.
JavaScript에서 접근할 수 있는 객체인 const user = api.getCurrentUser();에는 참조된 게시글에 있는 user_fields가 아니라 custom_fields라는 속성이 있는 것 같습니다.

하지만 이 필드는 비어 있거나, 올바르게 쿼리하거나 값을 채우는 방법을 모르겠습니다. 이 데이터에 접근하려면 실제 Ruby 플러그인이 필요할 것 같은 느낌이 듭니다.

이 문제에 대한 도움이 필요하며, 동일한 기능을 다시 작동시키는 구체적인 방법을 안내해 주시면 감사하겠습니다.
필요한 기능은 사용자 정의 사용자 필드에 따라 body에 사용자 정의 CSS 클래스를 추가하는 것입니다.

읽어 주셔서 감사합니다 o/

사용자 프로필의 .json 출력을 확인하면 user_fields 레코드를 볼 수 있습니다(예: https://meta.discourse.org/u/pfaffman.json, 다만 여기에는 사용자 정의 필드가 없습니다). UX에서 추가한 사용자 필드가 여기에 저장됩니다(실제로 이들은 user_custom_field의 특수한 종류입니다). user_custom_fields는 토픽 스트림의 사용자 레코드에 포함되지 않는 것으로 보입니다. 한때는 존재했다가 현재는 사라진 것인지 확실하지 않습니다(이 경우 버그일 가능성이 높습니다). 사용자 필드가 해당 설정에서 표시되도록 확인해야 합니다(예: 사용자 카드에 표시 등).

현재로선 사용자 정의 필드를 시리얼라이저에 추가하는 플러그인을 생성해야 할 것으로 보입니다.

사용자 정의 필드 대신 그룹을 사용한다면 문제를 해결할 수 있을 것입니다.

사용자가 UX에서 추가한 필드들이 여기에 있습니다(실제로는 user_custom_field의 특별한 종류입니다)

아, 그래서 변수 이름이 그렇게 지어진 거군요. 감사합니다.

/u/user.json 엔드포인트는 공개적으로 접근할 수 있으므로 공개 필드만 노출하는 것 같습니다. 이 문제의 성격상 NSFW 설정이 사용자 카드에 노출되기를 원하는 사람은 없을 거라고 생각합니다. 그래서 일단 그룹을 우회 방법으로 사용해보겠습니다 :smiley: