# Configuração \`Log anonymizer details\` não anonimiza completamente nomes de usuário

**URL:** https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500
**Category:** Bug
**Tags:** anonymization
**Created:** [Novembro 3, 2025, 9:35pm UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500 "2025-11-03T21:35:46Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [Novembro 3, 2025, 9:35pm UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/1 "2025-11-03T21:35:46Z")

</div>

Quando você já verificou o endereço de e-mail de um usuário antes, o nome de usuário dele permanece nos logs de ação da equipe, mesmo que `Log anonymizer details` esteja desativado.

Passos para reproduzir:

1. Desative a configuração do site `Log anonymizer details`.
2. Abra a página de administração do usuário.
3. Clique no botão “Mostrar” para ver o endereço de e-mail.  
 ![Screenshot_20251103_221532_Firefox](https://global.discourse-cdn.com/meta/original/4X/6/c/5/6c5dc3e414aaa9528982bd908ce2cb8232fece55.jpeg)
4. Anonimize o usuário.
5. Olhe os logs de ação da equipe.  
 ![Screenshot_20251103_222026_Firefox](https://global.discourse-cdn.com/meta/original/4X/c/4/5/c4594e48efaf3689f617a8aeb5f1efdc5e0c296f.jpeg)

**Resultado:** Embora a configuração tenha como objetivo impedir que o nome de usuário seja vinculado aos nomes anonimizados, isso fica óbvio por causa do log de ‘verificar e-mail’. Eu esperaria que o nome de usuário fosse anonimizado no caminho especificado lá, se a configuração impedir que o nome de usuário seja salvo.

Se a configuração `Log anonymizer details` salva o nome de usuário nos logs durante a anonimização, não importa que o nome de usuário permaneça inalterado no caminho.

 ![Screenshot_20251103_222344_Firefox](https://global.discourse-cdn.com/meta/original/4X/5/6/b/56bd700b84ca511411db8ac501f8f458ebb608a6.jpeg)

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 1, 2026, 12:52pm UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/2 "2026-01-01T12:52:13Z")

</div>

É meio complicado/arriscado remover coisas com base no nome de usuário, então optei por substituir todo o contexto e os campos de detalhes por uma mensagem `[removido devido à anonimização do usuário]`

> <https://github.com/discourse/discourse/pull/36936>
>
> When \`log\_anonymizer\_details\` is disabled, the anonymization process correctly a…voids recording the old username in the new "anonymize\_user" log entry. However, historical staff action logs created before anonymization (like "check\_email") could still contain the original username in fields like \`context\` or \`previous\_value\`, making it possible to link an anonymized user back to their original identity.
> 
> For example, when an admin views a user's email from \`/admin/users/123/johndoe\`, the staff action log stores that URL path in the \`context\` field. After anonymization, this path still contains "johndoe", defeating the purpose of the setting.
> 
> This fix passes the original username to the AnonymizeUser background job, which now scrubs any historical UserHistory records that contain the username. Rather than attempting error-prone string replacement, affected fields are replaced with "\[removed due to user anonymization\]" to make it clear why the data is missing while preserving the audit trail.
> 
> Ref - https://meta.discourse.org/t/387500

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 19, 2026, 9:40am UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/4 "2026-01-19T09:40:18Z")

</div>

@Moin isto foi mesclado :git_merged:

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 21, 2026, 8:00am UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/6 "2026-01-21T08:00:01Z")

</div>

Este tópico foi fechado automaticamente após 46 horas. Novas respostas não são mais permitidas.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 21, 2026, 4:20pm UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/7 "2026-01-21T16:20:48Z")

</div>



---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Janeiro 21, 2026, 4:21pm UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/8 "2026-01-21T16:21:16Z")

</div>

@Moin percebi que estava sendo muito negligente ao fazer a atualização 🤦‍♂️

> <https://github.com/discourse/discourse/pull/37242>
>
> Follow-up to 1fd17242d1.
> 
> The previous implementation replaced all four UserHi…story fields (context, details, previous\_value, new\_value) whenever any one of them contained the username. This caused confusing output in the staff action logs UI - for example, a "check email" action that only had the username in the context field would display:
> 
> New: \[removed due to user anonymization\]
> Previous: \[removed due to user anonymization\]
> \[removed due to user anonymization\]
> 
> ...even though those fields were originally empty.
> 
> Now each field is updated independently using SQL CASE expressions, so only fields that actually contain the username get replaced. Fields with unrelated content or nil values are preserved. This keeps the anonymization effective while avoiding the cluttered display.
> 
> Ref - https://meta.discourse.org/t/-/387500

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [Fevereiro 2, 2026, 7:00am UTC](https://meta.discourse.org/t/log-anonymizer-details-setting-not-fully-anonymizing-usernames/387500/11 "2026-02-02T07:00:19Z")

</div>

Este tópico foi fechado automaticamente após 3 dias. Novas respostas não são mais permitidas.
