Separar 'eliminar todas las publicaciones y temas permitidos por grupos' en permisos de contenido propio y contenido global

Creo que parte de la confusión aquí radica en que puede haber una distinción entre diferentes comprobaciones de «ver contenido eliminado».

Al examinar PostGuardian, un post individual eliminado no parece hacerse visible mediante can_see_post? simplemente porque el usuario pertenezca a delete_all_posts_and_topics_allowed_groups.

Por ejemplo, la visibilidad de un post eliminado individual parece pasar 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

Por lo tanto, un usuario no perteneciente al personal con nivel de confianza 2 (TL2) que esté en delete_all_posts_and_topics_allowed_groups no necesariamente podrá abrir o leer el cuerpo de cada post eliminado mediante can_see_post?.

Sin embargo, la misma configuración también se utiliza aquí:

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

Esto significa que la configuración sigue siendo conceptualmente más amplia que solo «el autor puede retirar su propio contenido». Parece utilizarse tanto para eliminar posts visibles de otros usuarios como para ciertas funcionalidades de visibilidad o listado de posts eliminados.

Por lo tanto, mi preocupación no es tanto «esta configuración expone definitivamente el cuerpo de cada post eliminado en cada punto de acceso», sino que el permiso actual combina varios conceptos:

  1. eliminar posts/temas de otros usuarios;
  2. ver o listar posts/temas eliminados en ciertos contextos;
  3. otorgar a los autores un mayor control sobre su propia huella.

Para mi caso de uso, solo desearía el tercer punto.

Es por eso que creo que una configuración específica para el contenido propio sería más limpia. Podría permitir que un usuario elimine o retire sus propios posts/temas, sujeto a las salvaguardas existentes, sin otorgar permisos más amplios similares a los de moderación sobre el contenido de otros usuarios o la visibilidad del contenido eliminado.