所以我之前分配给管理员账户的旧邮箱在更换域名后已不再存在。我想更改邮箱地址,但无法操作,因为系统要求向旧邮箱发送验证。
长话短说,我尝试了多种方法:更改了一些邮箱、创建了另一个管理员账户,并通过控制台删除了第二个管理员账户。但现在我无法重新使用原本分配给第二个管理员账户的邮箱。
不确定该将此问题归类为“支持”还是“漏洞”。
老实说,我有一份备份可以尝试恢复,但在这样做之前,请问这是否属于漏洞?是否有任何方法可以在不执行完整重置或从备份恢复的情况下解决此问题?
所以我之前分配给管理员账户的旧邮箱在更换域名后已不再存在。我想更改邮箱地址,但无法操作,因为系统要求向旧邮箱发送验证。
长话短说,我尝试了多种方法:更改了一些邮箱、创建了另一个管理员账户,并通过控制台删除了第二个管理员账户。但现在我无法重新使用原本分配给第二个管理员账户的邮箱。
不确定该将此问题归类为“支持”还是“漏洞”。
老实说,我有一份备份可以尝试恢复,但在这样做之前,请问这是否属于漏洞?是否有任何方法可以在不执行完整重置或从备份恢复的情况下解决此问题?
安装数据浏览器插件,然后你就可以检查哪张表中还包含你想要删除的邮箱地址。
你仍然需要知道要查询/删除哪些表,除非你建议我为 100 多个具有不同架构的表手动创建 100 多个精心设计的查询。
如果有人能将此帖子重新归类为“错误”,我将不胜感激。
这似乎不太可能是一个错误。这取决于你是如何在控制台中删除该用户的。
在控制台中,尝试搜索以下内容:
UserEmail.where(email: '<your_deleted_users_email>')
如果返回了结果,请使用返回的 user_id 搜索对应用户:
User.find_by(id: <email_record_id>)
我猜测不会返回任何用户,因为该邮箱属于你已删除的用户。如果是这种情况,可以安全地对邮箱记录调用 destroy!。在尝试此操作之前,请确保你已对网站进行了最新的备份。
如果该邮箱确实属于某个现有用户,请勿删除该邮箱记录。
要从控制台删除用户,请使用 UserDestroyer。参见 https://meta.discourse.org/t/deleting-users-in-rails-console/141540/2。
备忘:将其转化为 #howto:faq