Извините, но я вынужден отклонить этот PR. Это изменение слишком сложное и трудное в поддержке. Основные причины:
- Область видимости не всегда требуется и не должна быть обязательной;
- Внесение изменений и последующее их сопровождение во всех местах, например в плагинах, потребует огромных усилий;
PlaceholderGuardianне решает проблему, а добавляет фиктивную область видимости (с намерением исправить это позже);- В большинстве случаев сериализация должна происходить в контроллере, и область видимости будет добавляться автоматически.
Отображение имени пользователя или полного имени в зависимости от группы — довольно сложная задача. Вместо того чтобы пытаться внедрить это в ядро Discourse, можем ли мы начать с создания плагина? Если ваше сообщество небольшое, это может работать так:
- Установите
SiteSetting.enable_namesв false, чтобы всегда использовать имя пользователя; - Определите эндпоинт, который будет возвращать карту «имя пользователя → полное имя» для пользователей уровня TL3;
- Используйте вызов API
formatUsernameдля добавления полного имени или его замены для пользователей уровня TL3 — https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/lib/plugin-api.gjs#L1711