Dividir "excluir todas as postagens e tópicos permitidos por grupos" em permissões de conteúdo próprio e conteúdo global

Acho que parte da confusão aqui é que pode haver uma distinção entre diferentes verificações de “ver conteúdo excluído”.

Analisando o PostGuardian, um post individual excluído não parece se tornar visível por meio de can_see_post? simplesmente porque o usuário está em delete_all_posts_and_topics_allowed_groups.

Por exemplo, a visibilidade de posts individuais excluídos parece passar por:

def can_see_deleted_post?(post)
  return false if !post.trashed?
  return false if @user.anonymous?
  return true if is_staff?
  post.deleted_by_id == @user.id && @user.has_trust_level?(TrustLevel[4])
end

Portanto, um usuário não da equipe com nível de confiança 2 (TL2) em delete_all_posts_and_topics_allowed_groups não necessariamente conseguiria abrir/ler o corpo de todo post excluído via can_see_post?.

No entanto, a mesma configuração também é usada aqui:

def can_see_deleted_posts?(category = nil)
  is_category_group_moderator?(category) ||
    @user.in_any_groups?(SiteSetting.delete_all_posts_and_topics_allowed_groups_map)
end

Isso significa que a configuração ainda é conceitualmente mais ampla do que apenas “o autor pode retirar seu próprio conteúdo”. Ela parece ser usada tanto para excluir posts visíveis de outros usuários quanto para certas funcionalidades de visualização/listagem de conteúdo excluído.

Minha preocupação, portanto, não é tanto que “essa configuração definitivamente expõe o corpo de todo post excluído em todos os endpoints”, mas sim que a permissão atual combina vários conceitos:

  1. excluir posts/tópicos de outros usuários;
  2. ver ou listar posts/tópicos excluídos em alguns contextos;
  3. dar aos autores mais controle sobre sua própria pegada digital.

Para o meu caso de uso, eu gostaria apenas do terceiro item.

É por isso que acho que uma configuração específica para o próprio conteúdo seria mais adequada. Ela permitiria que um usuário excluísse/retirasse seus próprios posts/tópicos, sujeito às salvaguardas existentes, sem conceder permissões mais amplas, semelhantes às de moderação, sobre o conteúdo de outros usuários ou a visibilidade de conteúdo excluído.