Con la necesidad de un acceso tan detallado, es posible que necesites considerar si un tema público normal es la mejor solución. ¿Quizás puedas contar un poco más sobre tu caso de uso específico?
Un buen punto de partida sería, de hecho, mi plugin de respuestas privadas. Tiene una función llamada can_see_post_if_author_among que actualmente toma un tema. Deberías modificarla para que tome una publicación. Deberías almacenar los usuarios permitidos con la publicación en un campo personalizado y luego verificar el usuario que la ve contra esa lista.
El plugin también anula la lógica de control de acceso para publicaciones sin formato, búsquedas, vistas de temas y actividad del perfil de usuario.
Dicho esto, espero que te encuentres con bastantes problemas tanto desde el punto de vista del rendimiento como de la experiencia del usuario, y especialmente si no tienes experiencia en el desarrollo de plugins de Discourse, esto puede ser una tarea bastante importante, por lo que te recomendaría nuevamente que consideres si este es el mejor enfoque para tu caso de uso.