Добавление 'anonymous*' в зарезервированные имена пользователей блокирует создание имен вида 'AnonymousXX' в режиме анонимности

Продолжение обсуждения из Как анонимизировать отдельный пост?:

Я только что попробовал это сделать, и созданный для пользователя анонимный аккаунт оказался 20-символьной строкой из, казалось бы, случайных буквенно-цифровых символов, начинающейся с cb426… Я ожидал, что имя будет в формате “anonymous99” или “anonymous100”.

Это баг или я что-то делаю неправильно?

2 лайка

Я только что impersonated тестового пользователя, затем перешел в анонимный режим, и сгенерированное имя имеет формат anonymousNN.

Можете ли вы воспроизвести это на нескольких аккаунтах?

1 лайк

Да, это то же самое (хотя другое случайное имя пользователя) для другого пользователя, с которым я это проверил.

Я использую 2.9.0.beta10 (0c38757250).

2 лайка

Интересно, включен ли у меня анонимный режим для TL1+ и я пытался выдать себя за пользователя TL0 или анонимизировать его. Проверю позже.

1 лайк

Я убедился, что параметр «Разрешить анонимные публикации» включен, «Минимальный уровень доверия для анонимных публикаций» установлен на 0, создал нового пользователя, вошёл под его именем (не используя имперсонацию), активировал анонимный режим, и созданный никнейм оказался…

30d844ebb6818fcb7eab

Значит, проблема связана с анонимизацией как таковой, а не только при имперсонации. Я изменю заголовок этой темы с «Анонимный пользователь создан при имперсонации пользователя, имя которого не начинается с „anonymous“» на что-то более точное.

P.S. всё ещё 2.9.0.beta10 (0c38757250)

У вас много анонимных пользователей?

Думаю, это было исправлено в то время, но, возможно, произошло регрессионное изменение?

1 лайк

Только что-то больше дюжины, плюс четыре таких пользователей со случайными 20 символами за последние пару недель.

У человека, для которого это возникло, было создано настоящее имя пользователя «Anonymous20», тогда как следующее анонимизированное имя должно было быть «anonymous20» (я не помню точное число).

(После этого я переименовал его и добавил слово «anonymous» в список слов, которые нельзя использовать в имени пользователя.)

Может ли это иметь значение?

1 лайк

Это звучит многообещающе. Давайте проверю на моём тестовом сайте. :+1:

1 лайк

Отлично. Посмотрев на это, я добавил в зарезервированные имена пользователей anonymous и anonymous*

Я только что удалил эти два добавления, и всё снова работает как надо! Спасибо, что указали на старую тему, которая натолкнула меня на эту мысль.

Всё ещё было бы неплохо запретить пользователям создавать учётные записи со словом “anonymous”, но при этом сохранить корректную работу анонимного режима. Похоже, это всё ещё баг.

1 лайк

Виновник — это anonymous*:

user_name_suggester проверяет зарезервированные имена перед выделением нового, поэтому добавление этого шаблона как раз и вызывает проблему: :+1:

1 лайк

Спасибо за уточнение.

Возможно, Discourse стоит проверять «зарезервированные имена пользователей», но игнорировать запрет на слово «anonymous» при создании анонимного пользователя.

1 лайк

Я хотел бы запретить использование слова «Anonymous» в именах пользователей, за исключением случаев, когда оно создано в анонимном режиме Discourse.

Раньше это было невозможно из-за указанной выше проблемы (т. е. запрет для людей использовать «Anonymous» также блокировал анонимный режим Discourse).

Но изменилось ли это с тех пор?