Avec la nécessité d’un accès aussi granulaire, vous pourriez avoir besoin de considérer si un sujet public ordinaire est la meilleure solution. Peut-être pourriez-vous en dire un peu plus sur votre cas d’utilisation spécifique ?
Un bon point de départ serait en effet mon plugin private-replies. Il a une fonction appelée can_see_post_if_author_among qui prend actuellement un sujet. Vous devriez la modifier pour qu’elle prenne un message. Vous devriez stocker les utilisateurs autorisés avec le message dans un champ personnalisé, puis vérifier l’utilisateur qui consulte par rapport à cette liste.
Le plugin remplace également la logique de contrôle d’accès pour les messages bruts, la recherche, les vues de sujets et l’activité du profil utilisateur.
Cela dit, je m’attends à ce que vous rencontriez pas mal de problèmes, tant du point de vue des performances que de l’expérience utilisateur, et surtout si vous n’avez aucune expérience dans le développement de plugins Discourse, cela peut représenter un défi considérable. Je vous recommanderais donc à nouveau d’examiner si c’est la meilleure approche pour votre cas d’utilisation.