Не могу изменить email администратора

Ребята, у меня есть форум, и я единственный администратор и владелец! Оказалось, что когда я создавал этот сайт, я использовал электронную почту REDACTED. Этот адрес я использовал через cPanel хостинга TMD. Дело в том, что я больше не пользуюсь услугами TMD Hosting и перешёл на DigitalOcean, и даже забыл, что почта моего администратора была именно этой — я её не менял! Теперь я попытался передать права администратора другой своей учётной записи на форуме, но форум требует ввести учётную запись REDACTED и подтвердить, что я хочу передать права администратора. Однако я больше не могу получить доступ к cPanel TMD Hosting, чтобы войти в REDACTED. Что мне делать?

[image]

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

Вы можете изменить email администратора через консоль Rails с помощью этого удобного руководства: :+1:

Спасибо за ответ, но теперь возникла ещё одна проблема, которую я не могу решить, даже следуя нескольким руководствам! Как посмотреть ID пользователя?

[image]

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

root@ForumPandex:/var/discourse# u = User.find_by_username("dex")
-bash: синтаксическая ошибка рядом с неожиданным токеном `('
root@ForumPandex:/var/discourse#

Я использую эту команду, но появляется такая ошибка. Как исправить?

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

Однако я также рекомендую сделать резервную копию вашего сайта, прежде чем углубляться дальше. Пошаговое руководство, конечно, упрощает процесс, но если вы не знакомы с консолью Rails, могут произойти ошибки. Вы же не хотите что-то сломать, не имея под рукой свежей резервной копии. :+1: :crossed_fingers:

что такое биты? я не знаю

Я немного поправил язык в своём сообщении выше. Надеюсь, теперь всё понятнее. :+1:

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

Я использую Google Переводчик, я не понимаю, что вы сказали, возможно, это ошибка перевода или контекст, не понятный для Google!

Но то, что я не понимаю, это то, что я правильно следую пошаговой инструкции, не знаю, почему это появляется:

-bash: синтаксическая ошибка рядом с неожиданным токеном `(’

Что такое маркетплейс?

Я перезагрузил компьютер, и ошибка исчезла! Но теперь появилась другая ошибка на этапе ввода адреса электронной почты: u.email = "REDACTED" выглядит так:

неверный символ (нажмите Enter)

На этапе ввода электронной почты u.email = "REDACTED" отображается следующее сообщение:

неверный символ (нажмите Enter)

как это исправить?

Из вашего описания непонятно, в чём проблема. Убедитесь, что после адреса электронной почты нет пробела в конце. Однако я рекомендую создать нового пользователя-администратора с помощью команды:

   rake admin:create

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

Где я должен был это сделать? В любом случае, теперь это отображается

root@ForumPandex:~# cd /var/discourse
root@ForumPandex:/var/discourse# ./launcher enter app
Обнаружена архитектура x86_64.
ПРЕДУПРЕЖДЕНИЕ: файл containers/app.yml доступен для чтения всем. Вы можете защитить этот файл, выполнив команду: chmod o-rwx containers/app.yml
root@ForumPandex-app:/var/www/discourse#

root@ForumPandex:~# cd /var/discourse
root@ForumPandex:/var/discourse# ./launcher enter app
Архитектура x86_64 обнаружена.
ПРЕДУПРЕЖДЕНИЕ: файл containers/app.yml доступен для чтения всеми. Вы можете защитить этот файл, выполнив: chmod o-rwx containers/app.yml
root@ForumPandex-app:/var/www/discourse# rails c
[1] pry(main)> u = User.find_by_username "=dex="
=> nil
[2] pry(main)> e.email = "EMAIL"
NameError: неопределенная локальная переменная или метод `e' для main:Object
из (pry):2:in `__pry__'
[3] pry(main)> u.email = "EMAIL"
NoMethodError: неопределенный метод `email=' для nil:NilClass
из (pry):3:in `__pry__'
[4] pry(main)> u.email_tokens.create(email: u.email)
NoMethodError: неопределенный метод `email_tokens' для nil:NilClass
из (pry):4:in `__pry__'
[5] pry(main)> u.save!
NoMethodError: неопределенный метод `save!' для nil:NilClass
из (pry):5:in `__pry__'
[6] pry(main)>

Я перенёс ваши сообщения сюда, чтобы вся информация по проблеме была в одном месте, так что людям будет проще вам помочь. :+1:

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

Похоже, вы разобрались, как попасть в консоль Rails. :+1: Но, судя по всему, при вводе имени пользователя вы использовали символы-заполнители =. Имя пользователя нужно вводить без них.


Хотя @pfaffman предложил альтернативный метод, если текущий оказывается слишком сложным:

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

Более подробную информацию о задаче создания администратора через rake можно найти по адресу: Create an admin account from the console

Вы не ввели имя пользователя в пустые поля в теме с кодом, поэтому вместо имени пользователя там стоит текст-заполнитель.

u = User.find_by_username "=dex="

Должно быть:

 u = User.find_by_username "dex"

Если «dex» — это имя пользователя, то тот факт, что возвращается nil вместо записи пользователя, указывает на то, что такой записи нет. Поскольку вы не понимаете этих основ, я настоятельно рекомендую создать нового пользователя, как предлагалось ранее. Это позволит вам работать с более привычными инструментами.

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

[image]

Спасибо за помощь, я очень вам признателен! Поцелуй из Бразилии

[image]