Talvez eu tenha falado cedo demais. ![]()
Após corrigir os parâmetros truthy/falsy para as strings ‘true’/‘false’, ainda vejo entradas sendo adicionadas em IPs Filtrados e E-mails Filtrados ao excluir usuários.
Aqui estão os logs do Rails para uma chamada de API:
Started DELETE "/admin/users/9553.json" for 123.123.123.123 at 2021-06-10 00:01:21 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"delete_posts"=>"false", "block_email"=>"false", "blocked_urls"=>"false", "block_ip"=>"false", "id"=>"9553"}
Can't verify CSRF token authenticity.
Rendering text template
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 8ms (Views: 1.4ms | ActiveRecord: 0.0ms | Allocations: 2301)
E aqui está a solicitação quando feita pela interface web em vez de chamar a API:
Started DELETE "/admin/users/49.json" for 123.123.123.123 at 2021-06-10 08:24:47 +0000
Processing by Admin::UsersController#destroy as JSON
Parameters: {"context"=>"/admin/users/49/XXX", "delete_posts"=>"true", "id"=>"49"}
Rendered text template (Duration: 0.0ms | Allocations: 1)
Completed 418 in 23ms (Views: 4.7ms | ActiveRecord: 0.0ms | Allocations: 1778)
Portanto, após alguns testes, parece que os parâmetros para o endpoint da API /admin/users/{id}.json são sempre interpretados como verdadeiros quando estão presentes, independentemente de estarem realmente definidos como ‘true’ ou ‘false’?
Assim que comecei a definir apenas os parâmetros que eram ‘true’, ignorando os ‘false’, nenhuma nova entrada foi mais adicionada aos IPs/E-mails Filtrados.
Esse é o comportamento esperado? Não é isso que entendo da documentação.