Созданный вручную пользователь на этапе staging?

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

Возможно, стоит объяснить, что именно я пытаюсь сделать.

У меня настроен WordPress/WooCommerce, где клиент может записаться на приём. Клиент отправляет дополнительную информацию через форму, предоставляемую WordPress. Эта форма отправляется в (мою) групповую почту. Однако, поскольку я использую Amazon SES, я не могу использовать email клиента как отправителя, так как в этом случае мне пришлось бы вручную утверждать этого отправителя, а такой вариант мне не подходит. Поэтому я получаю письмо с адреса моего WordPress.

Теперь мне нужно как-то автоматически, или с минимальными усилиями с моей стороны, связать тему в PM с email клиента. И единственное решение, которое пришло в голову в рамках моих ограниченных знаний, — это смена владельца, но для этого мне нужен пользователь.

Почему бы мне не использовать OAuth и не создать этого пользователя, раз они всё равно должны создать учётную запись в WordPress? Просто я не понимаю, как это сделать, или не нашёл подходящую тему здесь. Часто предлагаемое SSO не подходит, так как оно перехватывает все другие варианты входа.

Попробуйте ввести команду для контейнера ./launcher enter app

затем перейдите в консоль Rails:

rails c

создайте нового пользователя:

new_user = User.create

затем … это сначала вызовет ошибку, попробуйте сохранить его (чтобы инициализировать):

new_user.save!

следуйте инструкциям по заполнению некорректных атрибутов, пока сохранение не сработает.

например,

new_user.username = 'frank'

позволит обойти одну ошибку валидации.

Повторяйте процесс, пока пользователь не будет успешно сохранён.

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

Не забудьте сохранить объект, так как new_user будет временным, пока сохранение не выполнится успешно.

Меня просто интересует… вот это: staged: false

Как я могу увидеть все эти данные для реального пользователя из стадии подготовки? Или я уже слишком глубоко влез и пытаюсь отчаянные вещи делать, и мне просто нужно создать таких пользователей вручную через создание аккаунта :joy:

User.where(staged: true).first(10)

Пожалуйста, не мог бы Discard просто спросить «вы уверены?» :man_facepalming:

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

Вот что я сделал:

newuser = User.create
newuser.username = 'frank'
newuser.staged = true
newuser.email = 'frank@example.tld'
newuser.save!

Думаю, это тоже могло бы сработать, но я не пробовал.

newuser = User.create!(username: "frank", staged: true, email: "frank@example.tld")

Да, такой подход тоже должен сработать.

За исключением… я не могу изменить владельца PM на пользователя в стадии подготовки :man_facepalming:

Так что, пока я не начну реализовывать OAuth, мой единственный вариант — отправить PM на email этого пользователя. Если я правильно понимаю, та же стадия подготовки произойдёт и в этом случае.

Или я могу одобрить этого пользователя. Это тоже вариант. Но я предпочту этого не делать, так как тогда я сделаю это без его согласия.

Но теперь я знаю основы того, как создавать и редактировать пользователей с помощью Rails :winking_face_with_tongue: Это тоже победа. К тому же я создал пользователя в стадии подготовки, с которым пока ничего не могу сделать.

newsuser.destroy

(примечание: НЕ “delete”)

Другой способ, который я нашел, выглядит так:

1) Создайте категорию… (Я назвал свою «Входящие»)

2) В настройках этой категории включите опцию «Принимать письма от анонимных пользователей без аккаунтов»

3) Отправьте письмо на этот адрес электронной почты

Я не совсем понимаю :thinking: Как я могу отправить письмо с необычного адреса, чтобы создать такого промежуточного пользователя, и в чём разница между этим и использованием группового адреса?

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

(Вы пробовали это сделать?)

Нет, потому что я всё ещё не понимаю, как можно отправить письмо с адреса, который мне не принадлежит.

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

на…

адрес электронной почты, который я указал в настройках категории для новой категории Входящие, которую я создал. В данном случае (как показано в моем примере выше) это inbox@forum.mysite.com, что, конечно же, также является адресом электронной почты, которым я владею (так как домен совпадает с доменом моего форума).

Но Jagster хочет создать тестового пользователя для своего аккаунта. Он не может отправить им письмо.

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

Я спрашивал, как создать поэтапного пользователя (в смысле, как пред-ТЛ) для реального человека, не заставляя его отправлять письмо на форум.

Снова столкнулись с огромным языковым барьером, полагаю (нам отчаянно нужен этот AI-переводчик) :joy:

Создание фейкового пользователя, поэтапного или зарегистрированного, — действительно простая задача на iPhone.

Итак, я разобрался. Заодно получил возможность объяснить, что именно делал. Но, опять же, создание поэтапного пользователя (staged user) не было той самой проблемой, которую я пытался решить. Моя цель — связать последующие действия с моим WooCommerce. Поэтому я поступил так, как сейчас принято: пришёл к одному решению и задал вопрос именно о нём. Это было сделано намеренно, потому что я понимал: нельзя спросить, как отправить письмо из WooCommerce, где отправителем будет этот пользователь, ведь Amazon SES этого не позволит. Или как автоматически синхронизировать пользователей WordPress с форумом, поскольку это фактически незаконное действие.

Так что создание вручную поэтапного пользователя — это всё, что я смог придумать :smirking_face:

Я не совсем уверен, что полностью понимаю конкретные требования к маршрутизации для случая использования Jagster.

Однако я получаю письма в категорию «Входящие» моего Discourse (как я описал выше) с адреса электронной почты, с которого я не могу отправлять сообщения. Это письма от клиента, с которым я общаюсь через свой аккаунт Gmail.

Вот как я это настроил…

В своём аккаунте Gmail я создал фильтр, который перехватывает все письма, полученные от адреса электронной почты этого клиента, и (сохраняя копию в Gmail) пересылает эти письма на адрес электронной почты, который я указал для получения писем в категорию «Входящие» в моём экземпляре Discourse.

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

:exploding_head:

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

Вернёмся к реальной проблеме. Когда пользователь покупает услугу, он получает ссылку на форму, созданную плагином в WooCommerce. Нет, я не могу использовать Discourse для этого, потому что, как вы знаете, они не являются зарегистрированными пользователями. Я могу отправить эту форму в Discourse, но только с одобренных адресов, а адреса клиентов не одобрены и не будут одобрены в SES. Поэтому мне нужно как-то связать этого клиента, отправившего форму, теперь это личное сообщение (PM). После этого я смогу продолжить общение с клиентом на форуме благодаря всем инструментам, которые он предоставляет.