- 安装并启用插件:
- 首先,从以下链接安装 Discourse Migrate Password 插件:
Discourse Migrate Password 插件
(discourse-migratepassword/plugin.rb at master · communiteq/discourse-migratepassword · GitHub)。
- 安装完成后,在您的 Discourse 设置中启用该插件。这将允许将不安全的密码迁移到 Discourse。
- 创建自定义字段:
- 在 Discourse 中,导航到用户自定义设置。
- 在此处,创建一个名为“import_pass”的自定义字段。
- 导入用户:
- 使用您偏好的方法将一个或多个用户导入 Discourse。
- 在导入过程中,请确保为每个用户在“import_pass”字段中包含一个哈希字符串。
- 登录尝试:
- 尝试使用导入的用户名和哈希字符串的组合登录 Discourse。
- 但是,您可能会遇到一条错误消息,提示“用户名和密码不正确”。
- 标准登录:
- 作为替代方案,您可以使用与该帐户关联的用户名和密码成功登录 Discourse。
请分享我解决方案,以便在 Discourse 中使用此插件将 Drupal 密码迁移到 Discourse
@Discourse
1 个赞
RGJ
(Richard - Communiteq)
2
为了让 Drupal 支持导入用户,有必要修改现有的 Drupal 导入器,使它们能够填充 import_pass 字段。基础导入器对此提供了支持,因此您需要做的就是将适用的数据库字段提供给您传递给 create_users 的结构,键为 password。例如,VBulletin 导入器在此处执行此操作:here。
对于 Drupal 导入器,它们在此处:here 和此处:here。
第二步是不需要也不将需要。您是从哪里得到这个信息的?
您应该在导入后启用插件,并在导入期间禁用它。
因此,正确的步骤是:
2 个赞
在我们的讨论中,我非常感谢您对先前查询提出的宝贵反馈。然而,我更想探讨如何测试我的插件功能,以确定它是否正常运行。我已经按照概述的安装步骤进行操作,但遇到了问题,因为它似乎没有响应。我不确定如何验证它是否正确触发了脚本。具体来说,我想了解在执行插件脚本之前,它如何检查用户初始密码选择是否不为空或不正确。
如果您能就此事提供更多见解,我将不胜感激。提前感谢您的帮助。
RGJ
(Richard - Communiteq)
4
该插件通过覆盖 User 类的 confirm_password? 方法来工作。
它首先调用原始的密码检查,当密码被核心 Discourse 逻辑接受时,它不做任何操作。
如果不是这种情况,它会检查用户是否有一个 import_pass 自定义字段,如果有,它将使用所有可用算法将输入的密码与 import_pass 哈希进行比较。
如果找到匹配项,它会将输入的密码保存为用户的密码,并允许用户登录。
3 个赞
davidag
(David)
5
我创建了一个 PR,添加了支持从 Drupal 6 迁移到 Drupal 7 的哈希。
这可能是凭据被视为无效的原因,如本主题中所述。
1 个赞