Может ли администратор создать поэтапного пользователя?

Я уже задавал этот вопрос в другой теме, но последний пост до моего был опубликован 5 лет назад, поэтому, возможно, эта тема не привлечёт столько внимания, как новая.

У меня вопрос с точки зрения человека, не являющегося разработчиком.

Мы используем Discourse как систему тикетов в нашей компании, и у меня успешно настроена возможность создания новых тем незарегистрированными пользователями в нашем форуме поддержки.

Иногда мне нужно создать тикет от имени клиента, вместо того чтобы он создавал его сам.

Есть ли простой пошаговый способ сделать это и создать тему от имени человека, у которого ещё нет аккаунта на форуме? Я не хочу, чтобы у них был полноценный аккаунт, если они сами не зарегистрируются.

Если это нужно делать через командную строку, это тоже нормально, но мне нужны подробные инструкции, например:

  1. Войти в контейнер с помощью команды foo
  2. Ввести rails bar и так далее
  3. Выполнить все остальные необходимые действия

Я знаю, что могу переназначать сообщения, поэтому, если сделать всё полностью слишком сложно, будут очень полезны хотя бы инструкции по созданию пользователя, а затем смена владельца через графический интерфейс.

Пока я смогу написать подробную статью для техподдержки, чтобы остальные сотрудники могли ей следовать, меня не волнует, что именно потребуется. Было бы здорово, если бы не всем сотрудникам требовался доступ к контейнеру через SSH, но мы справимся, если это неизбежно.

Получили ли вы письмо от клиента? Если да, вы можете переслать его в Discourse, и система создаст для него временную учётную запись.

Немного информации об этом поведении есть здесь, в разделе «Поведение при пересылке писем». Думаю, вам стоит изменить соответствующую настройку на «Создание ответов».

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

Вы также можете создать временного пользователя, просто отправив ему личное сообщение и указав его адрес электронной почты в качестве получателя. Если он еще не является участником, у него будет создана временная учетная запись. Если позже он войдет в систему, используя тот же адрес электронной почты, его учетная запись волшебным образом преобразуется, и он увидит свои личные сообщения на сайте.

Скорее всего, это именно тот ответ, который я искал. Как только у меня появится возможность попробовать это, я сразу же отпишусь.

Ещё один полезный совет: если вы используете группу для совместной обработки заявок в команде, включайте эту группу при отправке личного сообщения. Так сообщение будет отправлено от имени группы, и все ответы тоже будут приходить в группу.

Хорошо, но я настроил систему тикетов так, чтобы всё оставалось внутри Discourse.

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

Ой, подождите, не уверен, почему я написал «группа Google» — я исправил свой пост. :facepalm: Конечно, я имел в виду Discourse-группу.

Это имеет больше смысла, но мы на самом деле не используем группы. Мы используем только учетные записи и темы для отслеживания заявок.

Раньше у нас это работало. Я только что попытался воспользоваться этой функцией снова, но теперь появляется всплывающее сообщение с текстом:
Произошла ошибка: Вы должны выбрать действительного пользователя.

Есть ли идеи, как снова заставить это работать?

Вы администратор или модератор, или состоите в группе, указанной в настройке сайта «Разрешённые группы для отправки электронных писем»? Если нет, то эта ошибка понятна.

Кажется, в таком случае вы видите другую ошибку

Эта ошибка, похоже, вызвана другой проверкой, которая проверяет, введено ли имя пользователя, группа или адрес электронной почты в поле получателя

@tknospdr что именно вы ввели в поле получателя? Была ли в этом адресе электронной почты какая-то особенность?

Я авторизован как администратор сайта, когда возникает эта ошибка.

Я использую адрес с префиксом «+» для тестирования, но ошибка впервые появилась, когда я попытался создать нового пользователя, как я делал это раньше, и получил тот же результат.

Отправка личных сообщений по электронной почте определённо работает у меня. Не понимаю, почему у вас это не получается. Возможно, поможет, если вы запишете пример? Вы можете ввести что-то вроде discourse@example.com, чтобы не нужно было раскрывать свой адрес электронной почты.


Что ж, это ОЧЕНЬ странно. Я только что попробовал с example@example.com, и всё сработало.

Значит, адреса с символом «+» не работают. Возможно, в адресе оригинального клиента что-то было необычное, что и вызвало эту проблему изначально.
Мы уже обошли проблему длинным путём, чтобы добавить их в систему, так что непонятно, в чём дело.

Ещё раз спасибо за помощь, даже если в итоге это оказалось не проблемой!

Случайно ли у вас на сайте включена функция «Нормализация email»?

Проверка уникальности нормализованного email. Нормализация удаляет все точки из имени пользователя и всё между символами + и @.

Когда я включаю эту настройку, при использовании email-адреса с символом + я получаю следующее сообщение об ошибке:

Произошла ошибка: Один из пользователей, которым вы отправляете это сообщение, не найден.

Когда я отключаю эту настройку, личное сообщение создаётся, а также создаётся временный пользователь, и он получает email.

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

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

Даже при включённой проверке я мог создать случайный плюсовой адрес, например test+this@thing.com, но david+test@example.com не был создан, так как david@example.com уже существовал.

Полагаю, это соответствует ожидаемому поведению.

Я раньше этого не замечал, но если это сделано намеренно, то это действительно очень умное решение! В этом и заключается суть: использовать один адрес электронной почты для создания множества тестовых учётных записей.