왜 익명화된 사용자의 비밀번호와 사용자 정의 필드가 삭제/익명화되지 않나요?
sebix님,
테스트 인스턴스에서 사용자를 익명화했습니다. 그 결과 사용자 정의 필드 값이 삭제되었고, 비밀번호 해시가 변경되어 이전 비밀번호와 일치하지 않게 되었습니다.
흥미롭네요.
저는 1,772명의 사용자를 익명화했는데, 모두 import_pass 커스텀 필드를 유지했습니다. import_id도 유지되었지만, 이쪽은 그렇게 중요하지 않다고 봅니다.
사용 중인 discourse 버전은 "latest-release +157"입니다(discourse가 이렇게 표시하네요. 아마 0f4beab0fbbd7a163d399e2f94a6aa9cc3dd3ec8일 것입니다). 커밋 기준 11개 뒤처져 있지만, 해당 커밋들에는 관련 있는 변경 사항이 없어 보입니다.
비밀번호에 관해서는: 말씀하신 대로 해시가 변경되었습니다. 제가 그 부분을 놓치고 있었습니다. 첫 번째 게시글이나 문서에 이 정보를 추가해 주실 수 있을까요?
이러한 세부 정보를 추가해 주셔서 감사합니다 ![]()
이 필드들은 Migrated password hashes support 에서 가져온 것입니다.
따라서 Discourse와 직접적인 관련은 없습니다. 대부분의 멤버가 최소 한 번 이상 로그인한 후, 마이그레이션이 완료된 지 얼마 지나지 않아 플러그인을 안전하게 제거할 수 있습니다. 플러그인을 제거할 때 이 필드들이 유지되는지 아니면 삭제되는지는 확실하지 않습니다. 제 추측으로는 유지되지 않아야 하지만, 만약 유지된다면 rails 콘솔을 통해 값을 비울 수 있습니다.
네, 곧 그렇게 하겠습니다.
수정: 완료했습니다.
사실, 해당 플러그인은 이 사용자 지정 필드를 읽기만 합니다. 이 필드는 대부분의 가져오기(임포트) 스크립트에 의해 추가됩니다.
플러그인에는 어떠한 종류의 제거(설치 해제) 로직도 제공되지 않으므로, 플러그인에 의해 추가된 모든 설정, 데이터베이스 테이블 또는 사용자 지정 필드는 플러그인이 제거된 후에도 그대로 유지됩니다.
참고로, 대부분의 가져오기 스크립트는 import_username 사용자 지정 필드도 저장합니다.
사용자 지정 필드에 대한 레지스트리나 소유권 개념이 존재하지 않는다는 점을 고려할 때, 출처와 관계없이 모든 사용자 사용자 지정 필드를 익명화 절차에서 제거하는 것이 바람직할 수 있다고 생각합니다.
어떤 사용자가 탈퇴를 원해서 익명 처리를 요청한 적이 있습니다. 그런데 나중에 다시 복귀를 원했죠. 비밀번호 필드가 그대로 유지되어 있어, 그 사용자가 누구인지 알고 있었기 때문에 계정을 다시 활성화할 수 있었습니다.