정책에 동의했음에도 불구하고 리마인더가 계속 표시됨

안녕하세요,

제 포럼에서 아래 토픽의 정책을 TL0 사용자만 적용하도록 설정해 두었는데, TL4 사용자가 해당 정책을 수락하라는 알림이 계속 뜨는다고 불만을 제기했습니다. 이건 좀… 이상하지 않나요?

그 사용자의 계정이나 닉네임이 여전히 TL0 그룹에 남아 있어서 그런 게 아닐까 추측해 봅니다.

감사합니다! :+1:

앨버트, 안녕 :slight_smile:

TL0에는 포럼의 모든 멤버가 포함됩니다. 신뢰 수준 그룹 사이를 이동하는 것이 아니라, 그룹들이 누적되는 구조이기 때문에 모든 TL4 멤버는 동시에 TL3, 2, 1, 0 그룹에도 속해 있습니다. :+1:

이 정책이 모든 멤버에게 적용되지 않나요? TL4 멤버가 이를 수락하는 것을 막는 것이 있나요?

그들이 수락을 원하지 않는 것이 아니라, 이미 수락한 상태인데도 여전히 매주 리마인더가 발송되는 것이 다소 이상합니다. Renew 날짜를 365로 설정하고 Renew Start 필드는 비워 두었는데도 그렇습니다.

더 이상 리마인더를 받지 않도록 TL0 그룹에서 그들을 제거해야 할까요? 감사합니다

아쉽게도 TL0 그룹에서 그들을 삭제하는 것은 불가능합니다(계정을 삭제하지 않는 한 :slight_smile:). 기본적으로 ‘모든 멤버’ 그룹이기 때문입니다.

해당 설정을 살펴보면, 정책을 아직 수락하지 않은 경우에만 매주 알림을 보내도록 되어 있어야 합니다. 위 링크를 확인해 보니 아직 12명만 수락한 것으로 보이는데, 알림을 받는 사람들이 그 12명에 포함되나요?

아니요, 하지만 다른 멤버인 @bionel은 이를 수락했고 여전히 매주 알림을 받고 있습니다. 다른 멤버들의 경우, 이러한 포럼 변경/개선 사항에 대해 의견을 많이 내지 않아서 잘 모르겠습니다.

Renew 필드의 값을 720일(2년)로 올려두는 것이 도움이 될까요?

리마인더는 아직 정책을 수락하지 않은 사용자에게만 전송되어야 합니다. 정책을 수락한 후에는 갱신 기간(365일, 730일, 또는 더 짧거나 긴 기간)이 도래할 때까지 다시 수락을 요청하는 리마인더를 받지 않아야 합니다.

@bionel이 정책을 수락한 후에도 리마인더를 받는 이유는 정확히 모르겠습니다. :thinking: 저희도 내부에서 이 플러그인을 꽤 많이 사용하고 있지만, 아직까지 문제가 발생한 것을 발견하지 못했습니다. 당신도 추가적인 리마인더를 받고 계신가요?

수락 상태와 리마인더 알림을 빠르게 확인하기 위해 데이터 탐색기 쿼리를 작성할 수 있을 것 같습니다. 확인해 보겠습니다…

잠시 중간 보고를 드리자면, 이 기능을 직접 테스트해 보고 있는데, 현재 쿼리가 엉망이라 공유하기에는 아직 상태가 좋지 않습니다. :slight_smile:

집에서 함께 따라 해 보고 계신 분들을 위해, 정책 리마인더의 알림 유형이 18번임을 확인했고, 탐색기(explorer)에서 정책 관련 테이블은 post_policies, policy_users, policy_groups입니다(마지막 테이블은 이 작업에 필요하지 않을 것으로 보입니다).

또한 이전 알림 리마인더를 정리하는 로직이 코드 어딘가에 있는 것 같습니다:

다만 @albert_vu 님께 여쭈어 보자면, 이 정책이 TL0에게 적용되는 상황에서, 사용자가 정책을 수락할 때까지 20,000명 이상의 각 사용자에게 매주 정책 리마인더 알림을 보내는 것에 동의하시나요?

괜찮습니다! 해당 정책은 게시 전에 제품 관련 질문인 경우 포럼에서 주제(제목)를 올바르게 포맷하는 방법을 알 수 있도록 하기 위해 마련된 것입니다(우리 포럼에서 포맷이 부실하거나 정보가 부족한 사례가 꽤 많았거든요).

감사합니다!

향후 여행자를 위해 공적으로 후속 정보를 공유드립니다. :slight_smile:

이와 같은 방식으로 관련 정보를 확인하고, 정책이 수락된 후 알림이 전송되었는지 살펴볼 수 있을 것 같습니다:

-- [params]
-- topic_id :topic_id

SELECT pp.id AS "Policy ID",
       pp.created_at AS "Policy Created",
       n.user_id,
       n.created_at AS "Last Notification Received",
       pu.accepted_at AS "User Accepted Policy",
       pu.revoked_at AS "User Revoked Policy",
       pu.expired_at AS "Policy Expired"
FROM notifications n
JOIN posts p ON p.topic_id = n.topic_id 
JOIN post_policies pp ON pp.post_id = p.id
LEFT JOIN policy_users pu ON pu.post_policy_id = pp.id AND pu.user_id = n.user_id
WHERE n.topic_id = :topic_id
  AND n.user_id > 0
ORDER BY n.user_id, pu.accepted_at