抱歉,但我不同意。我不明白这为什么是一个功能请求而不是一个缺陷。
我理解有其他 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