Написанный мной код не удаляет настройку enable names[1], а дополняет её:
- Добавить настройку
full_names_visible_to_groups(которая включаетadminsиmoderatorsкак обязательные значения). - Добавить метод
can_see_full_names?вGuardian, который выполняет логическое «И» междуenable_namesи членством в группах изfull_names_visible_to_groups. - Использовать этот новый метод во всех подходящих местах, где полное имя раскрывается/отправляется сервером.
Пункты 1 и 2 были простыми. Пункт 3 сложнее, и я знаю, что столкнулся с некоторыми проблемами, которые не мог решить без консультации/руководства. Мне нужно вернуться и детально пересмотреть свой код и заметки. (Прошло уже более 2 месяцев с тех пор, как я в последний раз погружался в эту тему.
)
(Если я не ошибаюсь, display name on posts и подобные настройки являются клиентскими, влияющими на представление данных, полученных от сервера. Иными словами, это ограничение поверх того, что отправляет сервер.)
Я считаю, что пункт (1) решён, если enable_names равен true, что, вероятно, захотят почти все, как только станет доступна новая настройка для каждой группы.[2]
Думаю, я столкнулся с пунктом (2) и решил его — в основном.[3]
Вспоминаю ещё несколько случаев, когда полные имена утекают.[4]
В любом случае, я пересмотрю свои заметки и попробую отправить PR на этой неделе, а заодно подниму открытые вопросы и нерешённые проблемы в процессе.
…по ряду причин, среди которых: (а) я не был уверен в истинном назначении этой настройки (см. мой вопрос в предыдущем посте выше), и (б) её сохранение обеспечивает более безопасный путь постепенного обновления. ↩︎
…если исходить из того, что
enable_names = falseозначает «Этот сайт не использует полные имена ни в каком виде.» ↩︎Например, когда приглашение отправляется на какой-то адрес (очевидно, не связанный с пользователем, иначе приглашение не понадобилось бы), включает ли письмо полное имя приглашающего или нет? ↩︎
Например, в
oneboxer.rb, при oneboxing локального пользователя, полное имя записывается в обработанное содержимое поста, что делает его видимым для всех и каждого навсегда. ↩︎