プロジェクト

全般

プロフィール

Bug(バグ) #1815

完了

既に新規登録申請を行ったアドレスで2度目に新規登録申請を行うとInternal Server Errorになる

Tsuyoshi Tsurushima さんが約14年前に追加. 13年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-11-28
期日:
進捗率:

100%

予定工数:
3.6 で発生するか:
Yes
[QA]バグ通知済:
いいえ
3.8 で発生するか:

説明

Overview (現象)

管理画面のopAuthMailAddressPluginで招待モードを「招待なしでの登録を許可する」にした際に可能になる新規登録にて、1度新規登録申請を行い、本登録をせずにそのままにしている場合、2度目の新規登録申請を行うとエラーになります。

エラーは以下の通りです。

500 | Internal Server Error | Doctrine_Connection_Mysql_Exception
SQLSTATE: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`openpne3`.`member_config`, CONSTRAINT `member_config_member_id_member_id` FOREIGN KEY (`member_id`) REFERENCES `member` (`id`) ON DELETE CASCADE)

Causes (原因)

opRequestRegisterURLForm::validateAddress() で member_config に 'pc_address_pre' が存在していた場合、
その MemberConfig オブジェクトから Member オブジェクトを取得するような処理が入ってる。

$this->member = $config->getMember();

しかし、このままではActivateビヘイビアが有効であるため、
レコードが取得できていない状態となっている。(新規登録の状態ではis_active=0であるため、但しオブジェクトの取得自体はできている)
結果的に opRequestRegisterURLForm::sendMail() で
$member->setConfig('pc_address_pre', $address);

としたときに、id が null の状態であるため、レコードの挿入に失敗している。

Way to fix (修正内容)

MemberConfig::getMember() する際に、Activateビヘイビアを無効にする。

      $activation = opActivateBehavior::getEnabled();
      opActivateBehavior::disable();

      $this->member = $config->getMember();

      if ($activation)
      {
        opActivateBehavior::enable();
      }


関連するチケット 3 (0件未完了3件完了)

関連している OpenPNE 3 - Bug(バグ) #1816: 管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できるFixed(完了)Masato Nagasawa2010-11-28

操作
関連している opAuthMailAddressPlugin - Backport(バックポート) #2288: 既に新規登録申請を行ったアドレスで2度目に新規登録申請を行うとInternal Server ErrorになるInvalid(無効)Yuya Watanabe2010-11-28

操作
次のチケットと重複 opAuthMailAddressPlugin - Bug(バグ) #2127: 招待メールを二度送信するとDoctrine_Connection_Mysql_ExceptionになるInvalid(無効)Masato Nagasawa2011-05-23

操作

Kousuke Ebihara さんが約14年前に更新

  • 3.6 で発生するかYes にセット

Kousuke Ebihara さんが約14年前に更新

  • 対象バージョンOpenPNE 3.7.0 にセット

Masato Nagasawa さんが約14年前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Masato Nagasawa にセット

Masato Nagasawa さんが約14年前に更新

すでに登録済みであった場合に MemberConfig::getMember() として Member オブジェクトを取得使用としている箇所で、
opActivateBehavior が有効になっているため、メンバー情報が取得できていない事が原因です。

Masato Nagasawa さんが約14年前に更新

  • 3.6 で発生するか を削除 (Yes)

Masato Nagasawa さんが約14年前に更新

  • 対象バージョン を削除 (OpenPNE 3.7.0)

Masato Nagasawa さんが約14年前に更新

  • プロジェクトOpenPNE 3 から opAuthMailAddressPlugin に変更
  • [QA]バグ通知済いいえ にセット

Masato Nagasawa さんが約14年前に更新

  • 対象バージョン1.3.2 にセット
  • 3.6 で発生するかYes にセット

Masato Nagasawa さんが13年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

a4fd6bcaa947b51d78a095e43d7d61940f649255 にて修正しました。
取り込みよろしくお願いします。

Naoya Tozuka さんが13年以上前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

変更点確認しました。OKです。

Shingo Yamada さんが13年以上前に更新

  • 対象バージョン1.3.2 から 1.3.3 に変更

Yuma Sakata さんが13年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

Yuma Sakata さんが13年以上前に更新

「SNS登録済みのアドレスに管理画面から招待メール送信後、英語でエラー表示される」バグがありました。
こちらは #2234 で対応する予定です。

他の形式にエクスポート: Atom PDF