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

Написанный мной код не удаляет настройку enable names[1], а дополняет её:

  1. Добавить настройку full_names_visible_to_groups (которая включает admins и moderators как обязательные значения).
  2. Добавить метод can_see_full_names? в Guardian, который выполняет логическое «И» между enable_names и членством в группах из full_names_visible_to_groups.
  3. Использовать этот новый метод во всех подходящих местах, где полное имя раскрывается/отправляется сервером.

Пункты 1 и 2 были простыми. Пункт 3 сложнее, и я знаю, что столкнулся с некоторыми проблемами, которые не мог решить без консультации/руководства. Мне нужно вернуться и детально пересмотреть свой код и заметки. (Прошло уже более 2 месяцев с тех пор, как я в последний раз погружался в эту тему. :see_no_evil_monkey:)

(Если я не ошибаюсь, display name on posts и подобные настройки являются клиентскими, влияющими на представление данных, полученных от сервера. Иными словами, это ограничение поверх того, что отправляет сервер.)

Я считаю, что пункт (1) решён, если enable_names равен true, что, вероятно, захотят почти все, как только станет доступна новая настройка для каждой группы.[2]

Думаю, я столкнулся с пунктом (2) и решил его — в основном.[3]

Вспоминаю ещё несколько случаев, когда полные имена утекают.[4]

В любом случае, я пересмотрю свои заметки и попробую отправить PR на этой неделе, а заодно подниму открытые вопросы и нерешённые проблемы в процессе.


  1. …по ряду причин, среди которых: (а) я не был уверен в истинном назначении этой настройки (см. мой вопрос в предыдущем посте выше), и (б) её сохранение обеспечивает более безопасный путь постепенного обновления. ↩︎

  2. …если исходить из того, что enable_names = false означает «Этот сайт не использует полные имена ни в каком виде.» ↩︎

  3. Например, когда приглашение отправляется на какой-то адрес (очевидно, не связанный с пользователем, иначе приглашение не понадобилось бы), включает ли письмо полное имя приглашающего или нет? ↩︎

  4. Например, в oneboxer.rb, при oneboxing локального пользователя, полное имя записывается в обработанное содержимое поста, что делает его видимым для всех и каждого навсегда. ↩︎

4 лайка