Je pense qu’une partie de la confusion vient du fait qu’il pourrait y avoir une distinction entre différentes vérifications « voir le contenu supprimé ».
En examinant PostGuardian, il semble qu’un post individuel supprimé ne devienne pas visible via can_see_post? simplement parce que l’utilisateur appartient à delete_all_posts_and_topics_allowed_groups.
Par exemple, la visibilité d’un post individuel supprimé semble passer par :
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
Ainsi, un utilisateur non-staff de niveau de confiance 2 appartenant à delete_all_posts_and_topics_allowed_groups ne serait pas nécessairement en mesure d’ouvrir ou de lire le corps de chaque post supprimé via can_see_post?.
Cependant, le même paramètre est également utilisé ici :
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
Cela signifie que le paramètre reste conceptuellement plus large que simplement « l’auteur peut retirer son propre contenu ». Il semble être utilisé à la fois pour supprimer les posts visibles d’autres utilisateurs et pour certaines affordances de visibilité ou de liste des posts supprimés.
Ma préoccupation est donc moins que « ce paramètre expose définitivement le corps de chaque post supprimé dans chaque point de terminaison », et plus que la permission actuelle combine plusieurs concepts :
- la suppression des posts/sujets d’autres utilisateurs ;
- la visualisation ou la liste des posts/sujets supprimés dans certains contextes ;
- l’octroi aux auteurs d’un meilleur contrôle sur leur propre empreinte.
Pour mon cas d’usage, je ne souhaiterais que le troisième point.
C’est pourquoi je pense qu’un paramètre dédié au contenu personnel serait plus clair. Il permettrait à un utilisateur de supprimer ou de retirer ses propres posts/sujets, sous réserve des garde-fous existants, sans accorder de permissions plus larges de type modération sur le contenu d’autres utilisateurs ou sur la visibilité du contenu supprimé.