이메일 알림을 보내지 않도록 설정했는데도 사용자가 이메일을 받는 경우

오늘 아침, 지난 2주 동안 약 1,000명의 활성 사용자 중 약 60명만 이메일 알림을 활성화했음에도 불구하고 5,000개 이상의 이메일 크레딧이 소진된 사실을 발견했습니다.

관리자 설정에서 이메일을 모든 사용자에게 소급 적용하여 비활성화하고, 사용자 제어 패널에서 이메일 설정을 숨기기 위해 CSS를 추가했습니다.

이것이 해당 설정의 스크린샷입니다. 이전에도 이렇게 되어 있었지만, 기존 사용자의 설정을 소급 적용하여 변경할 것인지 묻는 모달이 뜨도록 다시 설정했습니다.

또한, 이 변경 사항의 이유를 설명하고, 불행히도 Discourse는 제가 운영 중인 포럼에서 어떤 이메일을 보낼 수 있는지에 대해 세밀한 제어가 허용되지 않으므로, 모든 사용원이 원하는 대로 설정하도록 허용하거나 스태프만(아니면 아무도, 이는 매우 구체적인 엣지 케이스를 제외하고는 다소 무용한 옵션입니다) 설정할 수 있도록 해야 한다는 점을 사용자에게 설명하는 주제를 열었습니다.

답변을 준 사용자 중 한 명은 여전히 이메일을 받고 있다고 말했습니다.

저는 약 10시경에 리셋을 실행했습니다. 이것이 해당 사용자의 받은 편지함 스크린샷입니다.

문제가 없는지 확인하기 위해 사용자를 임페르소네이트(계정 impersonation)하고 설정의 가시성을 다시 활성화하여 확인해 보았더니, 실제로 관리자 패널의 옵션에서는 변경될 것이라고 안내했지만 설정은 변경되지 않았습니다.

모든 사용자의 해당 옵션이 의도대로 꺼져 있는지(즉, '절대’로 설정되어 있는지) 확인하기 위해 실행할 수 있는 rails 명령어가 있을까요?

과거에 변경 사항을 적용할 때, 수동으로 설정을 선택하지 않은 사용자의 기본값만 초기화하여 개별 선택 사항(예: 이메일 수신에 동의하지 않은 사용자에게 이메일을 켜는 것)을 덮어쓰지 않도록 하였습니다. 표시되는 숫자는 영향을 받은 사용자의 수를 나타내며, 이는 대상이 되는 사용자만 해당되며 반드시 전체 사용자 수를 의미하지는 않습니다.

레일즈 콘솔을 사용하여 해당 사용자 설정의 값을 설정할 수 있어야 합니다. :+1: 이 주제에서 몇 가지 팁을 찾을 수 있습니다: Edit a user preference for everyone or a subset of users

혹시 이 정보가 필요한 분이 있을까 봐 공유합니다. 저는 루비에 대해 잘 모르겠고, 이 포럼의 오래된 주제들은 이제 시대에 뒤처진 것 같습니다.

현재 모든 사용자의 해당 옵션을 올바르게 재설정하기 위한 psql 쿼리는 다음과 같습니다:

UPDATE user_options SET email_messages_level = 2, email_level = 2, email_previous_replies = 2;

Rails 방식은 다음과 같습니다:

UserOption.all.update_all(email_messages_level: 2, email_level: 2, email_previous_replies: 2)