Извините, но я не согласен. Не вижу, как это может быть запросом на новую функцию, а не ошибкой.
Понимаю, что существуют другие конечные точки API, которые можно использовать. Однако основная суть /admin/users/sync_sso заключается именно в том, чтобы поддерживать такие данные в синхронизации. Уже есть возможность устанавливать поле имени учётной записи — это работает. Но при этом предполагается, что имя всегда является обязательным полем, и не допускается установка его в пустое значение. Следовательно, его нельзя использовать для синхронизации данных.
Код ниже, похоже, работает как ожидалось в моём тестовом окружении, но, опять же, я пока не чувствую себя достаточно уверенно, чтобы отправить запрос на слияние (PR). Используйте его или адаптируйте по своему усмотрению.
- if SiteSetting.sso_overrides_name && user.name != name && name.present?
- user.name = name || User.suggest_name(username.blank? ? email : username)
+ if SiteSetting.sso_overrides_name && user.name != name
+ if SiteSetting.full_name_required && name.present?
+ user.name = name || User.suggest_name(username.blank? ? email : username)
+ else
+ user.name = name
+ end