Код, отвечающий за анонимизацию:
- discourse/app/services/user_anonymizer.rb at main · discourse/discourse · GitHub
- discourse/app/jobs/regular/anonymize_user.rb at main · discourse/discourse · GitHub
Он выполняет следующие действия:
- Имя пользователя меняется на:
anon#<случайное число> - Пароль становится случайным (и недействительным)
- Имя удаляется или заменяется именем пользователя
- Дата рождения удаляется
- Заголовок удаляется
- Аватар удаляется
- При необходимости IP-адрес анонимизируется
- Электронные адреса меняются на
<имя_пользователя>@anonymized.invalid - Расположение в профиле удаляется
- Веб-сайт в профиле удаляется
- Биография удаляется
- Фон профиля удаляется
- Фон визитки удаляется
- Пользовательские поля удаляются
- SSO-данные очищаются
- API-ключи удаляются
- Приглашения и электронные письма удаляются
Так как имя пользователя меняется, Discourse попытается заменить его во всех сообщениях.
Обратный процесс практически невозможен, однако информация о пользователе может сохраниться в отдельных сообщениях.