Отключение "enable names" заставляет администратора вести себя странно

Извините, но я вынужден отклонить этот 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
2 лайка