Устранение несоответствий в SSO

Большинство полей профиля уже можно указать в процессе SSO, что очень удобно. От имени пользователя и имени до биографии и даже веб-сайта добавленного в прошлом году. Однако есть некоторые незначительные нюансы:

  • location, похоже, отсутствует — при беглом просмотре это единственное очевидное поле, которое невозможно изменить с помощью SSO.
  • website можно указать в процессе SSO, но, в отличие от большинства (если не всех) других полей профиля SSO, для него нет соответствующего параметра сайта, позволяющего переопределить локальное значение и запретить пользователю его изменять.

Полагаю, эти моменты были упущены по мере роста кодовой базы, так как я не могу придумать причин для таких исключений. К сожалению, моих знаний Ruby и Discourse недостаточно для отправки PR, но я хотел сообщить об этом — возможно, у кого-то есть необходимые технические навыки, чтобы это исправить.

Я внедрил изменения, чтобы заставить два вышеупомянутых пункта работать. Я с радостью внесу свой вклад обратно в Discourse, но не знаю, есть ли интерес к принятию этого изменения в основную ветку? /cc @sam

Дайте знать, прежде чем я начну проходить все формальности для отправки PR. Код работает, но может потребовать доработки или изменений, так как я новичок в Discourse.

Можете сразу начать работу над PR, чтобы пройти процесс CLA, но:

Это не кажется настолько ценным, чтобы тратить на это время — другие поля на этой странице, например, фоновое изображение карточки пользователя, не будут доступны на платформах SSO, поэтому добавление блокировки для поля website не даст преимущества в согласованности.

1 лайк

Извините, не уверен, что правильно понял, что вы имели в виду. Я согласен, что фоновое изображение карточки имеет ограниченное применение в SSO (хотя оно уже реализовано). Поле website также уже реализовано как поле SSO — я добавил лишь настройку sso_overrides_website, аналогичную тем, что уже существуют для имени пользователя, аватара, биографии и т. д., чтобы можно было запретить локальные изменения и обеспечить приоритет значения из SSO.