Para proponer una solución para Restrict exposure of full name to certain groups, me gustaría definir un predicado de permisos (del lado del servidor) que responda a la pregunta:
Basado en el ámbito/contexto del usuario actual, ¿está bien revelar los nombres completos de (otros) usuarios?
(El ámbito podría establecerse mediante una solicitud del cliente o mediante algún paso de procesamiento interno, como la generación de mensajes de correo electrónico de resumen).
¿Cuál es la construcción correcta para dicho predicado? ¿Dónde debería vivir en la base de código? Estoy pensando que tal vez esto pertenezca a un guardián (guardian) — ¿voy por buen camino? ¿Alguna opinión sobre cuál?
Imagino que este nuevo predicado subsumiría muchas (pero no todas) las instancias de SiteSettings.enable_names? actualmente en la base de código. (Acceder a los Serializers que devuelven user.name tapa la mayoría de las fugas de datos, pero no todas). Un buen beneficio de esto es que introduciría un punto de extensión mediante el cual un plugin futuro podría cambiar el comportamiento (actualmente no es posible, hasta donde sé, ¡o simplemente lo haría!). Por lo tanto, si consigo que esto funcione, se convertiría en una solicitud de extracción (pull-request) al núcleo de Discourse — y me gustaría enviar una PR que tenga esperanzas de ser aceptada.