Credo che parte della confusione qui derivi dal fatto che potrebbero esserci distinzioni tra diversi controlli per “visualizzare contenuti eliminati”.
Esaminando PostGuardian, sembra che un singolo post eliminato non diventi visibile tramite can_see_post? semplicemente perché l’utente appartiene a delete_all_posts_and_topics_allowed_groups.
Ad esempio, la visibilità dei singoli post eliminati sembra passare attraverso:
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
Quindi, un utente non di staff con livello di fiducia 2 (TL2) che appartiene a delete_all_posts_and_topics_allowed_groups non sarebbe necessariamente in grado di aprire o leggere il corpo di ogni post eliminato tramite can_see_post?.
Tuttavia, la stessa impostazione viene utilizzata anche qui:
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
Ciò significa che l’impostazione è concettualmente più ampia del semplice «l’autore può ritirare i propri contenuti». Sembra essere utilizzata sia per eliminare post visibili di altri utenti, sia per alcune funzionalità di visualizzazione/elenco dei post eliminati.
La mia preoccupazione è quindi meno «questa impostazione espone sicuramente il corpo di ogni post eliminato in ogni endpoint» e più che l’attuale combinazione di permessi unisce diversi concetti:
- eliminare post/argomenti di altri utenti;
- vedere o elencare post/argomenti eliminati in alcuni contesti;
- offrire agli autori un maggiore controllo sulla propria impronta digitale.
Per il mio caso d’uso, vorrei solo il terzo punto.
È per questo motivo che penso che un’impostazione dedicata ai propri contenuti sarebbe più chiara. Potrebbe consentire a un utente di eliminare/ritirare i propri post/argomenti, nel rispetto delle salvaguardie esistenti, senza concedere permessi più ampi di moderazione sui contenuti di altri utenti o sulla visibilità dei contenuti eliminati.