Users unable to add others to a personal message

TPM에서 방금 만든 것이 하나 있습니다.

방금 메시지를 보내서 테스트해 보았는데, 여기서 보이는 것이 이렇습니다.

여기서는 TL2가 아니지만, TPM에서는 TL3입니다 (테스트를 위해 모드가 저를 그 자리에 배치해 주었습니다).

따라서 제가 발신자일 때, 제 자신을 제거할 수 없습니다 - 이는 당연한 일입니다 - , 다른 사람도 제거할 수 없습니다. 수신자일 때, 저는 제 자신만 제거할 수 있지만, “+” 버튼을 통해 다른 사람을 추가할 수 있는 옵션은 TPM에 없습니다…

확인된 내용은 다음과 같습니다:

  • TL2+ 사용자는 토픽 시작자이거나 수신자인 경우에도 다른 사용자를 PM에 추가할 수 있습니다.
  • TL1 PM 생성자는 사용자를 추가하거나 제거할 수 없습니다.
  • TL1 PM 수신자는 자신을 제거할 수 있지만, 새로운 사용자를 추가할 수는 없습니다.

우리 사이트의 신뢰 수준(Trust Level) 기준에 따르면, 위의 동작은 정상적인 것으로 보입니다(강조 추가):

@laughingriver 최선의 방법은 사이트를 업데이트하는 것입니다. 그 후 다른 어떤 요인이 작용하고 있는지 파악해 볼 수 있습니다.

그런 걸 말했는데, @sam이 다음 중 어떤 기능을 추가하는 게 좋을 것 같아요:

  • 아무도 참여자 추가/제거를 할 수 없는 “비공개” DM(스태프는 예외로)
  • DM 소유자만 참여자를 추가/제거할 수 있는 DM(스태프는 예외로)

여기서 TL2/TL3을 가지고 노는 것보다 훨씬 유용하다고 생각합니다.

네, 사이트 업데이트 문제라면 TPM에서 업데이트를 얼마나 자주 하는지 고려할 때 꽤 시간이 걸릴 수 있겠네요.

그 신뢰 수준 설정은 2.3.0 릴리스로 업그레이드하기 전에 게시되었으므로, 몇몇 릴리스 동안은 이미 적용 중이라고 생각했었습니다…

저희 사이트에서는 성인들이 부모님이나 다른 성인 없이 청소년에게 메시지를 보낼 수 없도록 방지해야 하기 때문에 "개인 메시지 사용"을 꺼 놓았습니다. 대신 модератор들과 사용자 간의 소통에는 개인 메시지를 사용하고 있습니다.

문제는 기존 메시지에서 "추가 또는 제거"를 클릭하면 수신자를 제거할 수는 있지만, 새로운 수신자를 추가할 수 없다는 점입니다. 다른 설정을 변경해야 하는 건지, 아니면 "개인 메시지 사용"을 꺼 놓았기 때문에 (모더레이터나 관리자라도) 추가 기능이 비활성화된 건지 궁금합니다.

도와주셔서 감사합니다.

오늘早些 비슷한 문제를 조사한 적이 있습니다: https://meta.discourse.org/t/unable-to-add-user-to-pm-topic/162945. 해당 사례에서는 일일 최대 초대 수 설정이 0으로 되어 있을 때 일반 사용자가 PM에 다른 사용자를 초대할 수 없는 문제를 발견했습니다. 질문자님의 경우, 개인 메시지 활성화 사이트 설정이 문제의 원인이 될 가능성이 높습니다. 이 설정이 비활성화되면 관리자만 기존 PM에 사용자를 추가할 수 있습니다. 개인 메시지 활성화가 비활성화된 상태에서는 모더레이터가 PM에 사용자를 추가할 수 없습니다.

관리자가 질문자님의 사이트에서 PM에 사용자를 추가할 수 있는지 확인해 주실 수 있을까요? 이 기능이 작동하려면 관리자가 개인 메시지를 시작하는 사용자로 참여해야 합니다.

이러한 동작은 의도적으로 설계된 것이라고 생각됩니다. 코드에 명시적으로 그렇게 작성되어 있기 때문입니다. 개인 메시지 활성화 사이트 설정이 비활성화된 상태에서 모더레이터가 PM에 사용자를 추가하는 것을 막는 데에는 어떤 의도가 있는지 정확히 알 수 없습니다. 아마도 변경될 수 있는 부분일 수도 있습니다.

혹시 누군가가 이 문제를 살펴보고 싶을 경우를 대비해 개발자에게 메모를 남겨두겠습니다. 문제가 발생하는 위치는 여기입니다: discourse/lib/guardian.rb at main · discourse/discourse · GitHub.

관리자 계정으로 새 PM을 생성하고 사용자를 추가하는 것을 테스트해 보았습니다. 정상적으로 작동했습니다.

enable personal message가 비활성화된 경우에도 moderatator가 메시지를 시작할 수 있으므로, moderatator가 개인 메시지에 사용자를 추가할 수 있으면 좋겠습니다.

enable personal messages가 비활성화된 경우, 직원이 자신이 시작한 개인 메시지에 사용자를 추가할 수 있도록 옵션을 추가하거나(또는 해당 제한을 제거)하는 방안에 대해 논의가 있었나요?

여러분, 안녕하세요.

몇 주 전 업데이트 이후로 이 문제가 발생하기 시작했습니다. 사용자가 자신이 소유한 PM(개인 메시지)에서 다른 참가자를 제거할 수는 있지만, 더 이상 사용자를 추가할 수 없습니다:

초대 권한은 TL2가 있는 누구나(제 테스트 사용자도 해당됩니다)로 설정되어 있으며, "개인 메시지 활성화"도 켜져 있습니다. 하루 최대 초대 횟수는 10회로 설정되어 있습니다. 이 문제가 발생하는 다른 이유는 아직 찾지 못했습니다.

생각나는 점이 있으신가요? 감사합니다!

저도 최신 커밋에서 이 현상을 확인하고 있습니다 :cry:

@tshen 님, 여기서 문제를 재현해 볼 수 있을까요?

오늘 이 문제를 좀 더 자세히 살펴보았지만, 언급된 동작을 재현하지 못했습니다. 언급된 설정(개인 메시지 활성화 및 TL2가 하루에 최대 10회 초대 가능)을 사용하여 세 가지 메시지 시나리오를 시도해 보았습니다:

  1. 관리자 → TL2 :white_check_mark:
  2. TL2 → 관리자 :white_check_mark:
  3. TL2 → TL2 :white_check_mark:

이후 답변이 새 사용자 추가 기능을 깨뜨리는지 확인해 보았지만, 흥미롭게도 위의 모든 시나리오에서 소유자와 참여자 모두에게 “추가” 옵션이 표시되었습니다. 오히려 현재는 너무 완화되어 있다고 느낍니다.

“추가” 옵션 없이 “삭제” 버튼만 볼 수 있었던 유일한 경우는, 다른 사람이 시작한 PM에 TL1 참여자로 참여했을 때였습니다. 저는 스스로를 삭제할 수 있었지만, 다른 사람을 추가하거나 삭제할 수는 없었습니다.

@sdpiowa @diakopter 이 문제를 여전히 겪고 계신가요? 그렇다면 제가 시도해 볼 수 있는 상세한 재현 단계를 파악해 주실 수 있을까요?

네, 관련 사용자의 TL과 설정을 확인해 보겠습니다. 모든 계정이 TL2일 것으로 생각되지만, 특정 항목에 대해 최소 TL 설정을 일부 변경했습니다. 곧 다시 연락드리겠습니다.

안녕하세요,

저희 포럼(Discourse 호스팅)에서도 동일한 문제를 보고하고 있습니다. 저희 사이트에서는 “초대” 기능(비사용자에게 이메일을 통해 초대할 수 있도록 허용)이 비활성화되어 있으며, 개인 메시지는 이제 비관리자 사용자에게 “제거…” 버튼만 표시됩니다. 여기에 링크된 코드를 잠시 살펴보니

사용자가 기존 개인 메시지에 다른 사람을 초대할 수 있는 권한이 있는지 여부를 테스트하는 전용 코드(함수/분기)가 없는 것 같다는 추측이 듭니다. 아마 이 "테스트"가 원래 우연히 한 가지 방식으로 처리되었을 수 있고, 최근 업데이트 이후 동작이 변경되었지만 의도치 않게(부수 효과로) 변경되었을 수도 있습니다. 이것이 관리자 대시보드에서 적절한 설정으로 분리되어 공개되었으면 좋겠습니다(“스레드 시작자가 기존 개인 메시지 스레드에 사용자를 추가할 수 있도록 허용?” 및 “모든 참여자가 기존 개인 메시지 스레드에 사용자를 추가할 수 있도록 허용?”)…

위 정보가 @tshenry 님에게 도움이 될까요?

가능합니다! 아직 다시 자세히 살펴볼 기회가 없었습니다. 우선순위를 높이고 내일 처리해 보겠습니다.

이 문제에 대해 진행 상황이 있습니까? 최신 버전으로 업데이트했지만 동작은 그대로인 것 같습니다.

제 생각에는 PM에서 must approve users 옵션과 외부 사용자 초대, 기존 사용자 초대 간의 상호작용이 핵심인 것 같습니다.

오래 침묵해서 죄송합니다. 엔지니어를 해당 문제에 배정했습니다. 곧 수정될 예정입니다.

토픽 초대(기존 사용자)와 포럼 초대(신규 사용자)는 서로 다른 개념이므로 각각 다르게 처리되어야 한다고 생각합니다. 이를 변경하기 위해 PR을 열었습니다: