Drupalのパスワードをdiscourse-migrate-passwordプラグインでDiscourseに移行

  1. プラグインのインストールと有効化
    • まず、以下のリンクから Discourse Migrate Password プラグインをインストールします。

Discourse Migrate Password Plugin
リンク:
(discourse-migratepassword/plugin.rb at master · communiteq/discourse-migratepassword · GitHub)。

  • インストールが完了したら、Discourse の設定内でプラグインを有効にします。これにより、安全でないパスワードの Discourse への移行が可能になります。

  1. カスタムフィールドの作成
    • Discourse 内で、ユーザーカスタマイズ設定に移動します。
    • ここで、「import_pass」という名前のカスタムフィールドを作成します。

  1. ユーザーのインポート

    • 好みの方法で、1 人または複数のユーザーを Discourse にインポートします。
    • インポートプロセス中に、各ユーザーの「import_pass」フィールドにハッシュ文字列を含めるようにしてください。
  2. ログイン試行

    • インポートされたユーザー名とハッシュ文字列の組み合わせを使用して、Discourse にログインしようとします。
    • ただし、「ユーザー名とパスワードが正しくありません」というエラーメッセージが表示される場合があります。

  1. 通常のログイン
    • 代替手段として、アカウントに関連付けられたユーザー名とパスワードを使用して Discourse に正常にログインできます。

Drupal のパスワードを Discourse に移行するために、このプラグインを Discourse で使用するための解決策を教えてください。
@Discourse

「いいね!」 1

インポートされたユーザーのDrupalサポートを得るには、既存のDrupalインポーターを修正して、import_passフィールドを埋める必要があります。ベースインポーターにはこれに対するサポートがあるため、create_usersに渡す構造に、passwordキーで該当するデータベースフィールドを渡すだけで済みます。たとえば、VBulletinインポーターはここでそれを行っています。

Drupalインポーターについては、こちらこちらにあります。

ステップ2は、必要ではなく、今後も必要になることはありません。どこからその情報を得ましたか?

インポート後にプラグインを有効にし、インポート中は無効のままにする必要があります。

したがって、正しい手順は次のとおりです。

  • ユーザーをインポートする
  • プラグインをインストールして有効にする
「いいね!」 2

前回のクエリに関する貴重なフィードバックに感謝いたします。しかし、プラグインが正しく機能しているかどうかを判断するために、その機能をテストする方法についてトピックを掘り下げたいと思います。インストール手順は説明どおりに実行しましたが、応答がないように見えるため問題が発生しています。スクリプトが適切にトリガーされているかどうかを確認する方法がわかりません。具体的には、ユーザーの最初のパスワードの選択が空でないか、または間違っていないかを確認してからプラグインスクリプトを実行するプロセスについて理解したいと思います。

この件について、さらに詳しい情報を提供していただければ幸いです。よろしくお願いいたします。

プラグインは、User クラスの confirm_password? メソッドを オーバーライド することで機能します。
まず、元のパスワードチェックを呼び出し、パスワードがコア Discourse ロジックによって承認された場合は何も行いません。

そうでない場合は、ユーザーに import_pass カスタムフィールドがあるかどうかを確認し、ある場合は、利用可能なすべてのアルゴリズムを使用して、入力されたパスワードと import_pass ハッシュを照合します。

一致が見つかった場合は、入力されたパスワードをユーザーのパスワードとして保存し、ユーザーがログインできるようにします。

「いいね!」 3

Drupal 6 のハッシュを Drupal 7 に移行するためのサポートを追加する PR を作成しました。

これが、このトピックで説明されているように、認証情報が無効と見なされた理由である可能性があります。

「いいね!」 1