Я только что попробовал это сделать, и созданный для пользователя анонимный аккаунт оказался 20-символьной строкой из, казалось бы, случайных буквенно-цифровых символов, начинающейся с cb426… Я ожидал, что имя будет в формате “anonymous99” или “anonymous100”.
Я убедился, что параметр «Разрешить анонимные публикации» включен, «Минимальный уровень доверия для анонимных публикаций» установлен на 0, создал нового пользователя, вошёл под его именем (не используя имперсонацию), активировал анонимный режим, и созданный никнейм оказался…
30d844ebb6818fcb7eab
Значит, проблема связана с анонимизацией как таковой, а не только при имперсонации. Я изменю заголовок этой темы с «Анонимный пользователь создан при имперсонации пользователя, имя которого не начинается с „anonymous“» на что-то более точное.
У человека, для которого это возникло, было создано настоящее имя пользователя «Anonymous20», тогда как следующее анонимизированное имя должно было быть «anonymous20» (я не помню точное число).
(После этого я переименовал его и добавил слово «anonymous» в список слов, которые нельзя использовать в имени пользователя.)
Отлично. Посмотрев на это, я добавил в зарезервированные имена пользователейanonymous и anonymous*…
Я только что удалил эти два добавления, и всё снова работает как надо! Спасибо, что указали на старую тему, которая натолкнула меня на эту мысль.
Всё ещё было бы неплохо запретить пользователям создавать учётные записи со словом “anonymous”, но при этом сохранить корректную работу анонимного режима. Похоже, это всё ещё баг.
Возможно, Discourse стоит проверять «зарезервированные имена пользователей», но игнорировать запрет на слово «anonymous» при создании анонимного пользователя.