プロジェクト

全般

プロフィール

Backport(バックポート) #4052

「全メンバーをコミュニティ参加させる」リンクによって招待済みで登録していないメンバが登録できなくなる場合がある

isao sano9ヶ月前に追加. 5ヶ月前に更新.

ステータス:
Fixed(完了)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2016-11-15
期日:
進捗率:

100%


説明

概要

「全メンバーをコミュニティ参加させる」リンクによって招待済みかつ登録していないメンバが登録できなくなる場合がある.
また,そのようなメンバに対してさらに招待を送ると招待時にホワイトアウトする場合がある.
詳しくは下記のような複数のバグにより上記現象が発生する.

  • 「全メンバーをコミュニティ参加させる」リンクによって招待済みで登録していない(is_active=0)のメンバが参加してしまう
  • 新規登録完了処理時に初期コミュニティにすでに参加している場合に投げられた例外が拾われずに登録処理の途中で停止する
  • 招待時にプロフィールが登録されており is_active=0 となるようなメンバのメールアドレスを指定した場合に同じメンバで pc_address と pc_address_pre に同じメールアドレスが登録される場合があり,このような状態になった時にそのメールアドレスを含んだ招待を行おうとするとホワイトアウトする.

これら問題について,どのメールアドレスあるいはメンバに問題が発生しているかが Web インタフェース上では判別不能のためユーザがこの問題の認識および解決を行うことは困難である.

発生バージョン

OpenPNE 3.8.9
OpenPNE 3.6.13

原因

複数の不具合を含んでいるが問題発生の起点となるものは『「全メンバーをコミュニティ参加させる」リンクによって招待済みで登録していない(is_active=0)のメンバが参加してしまう』という問題のためその原因について記述する.

#927 修正時に Doctrine のオブジェクトによるクエリ発行から SQL によるクエリ発行に変更された際に opActivateBehavor を考慮したクエリが発行されなくなった. master ではその後 メソッド抽出からの修正が行われているため本問題は発生しない.

修正案

  • #927 の修正のように is_active について考慮したクエリを発行するように修正する
  • また すでに is_active=0 のメンバがコミュニティに参加してしまっている場合を考慮して新規登録完了時の already join の例外を適切に処理して登録を完了できるようにする
  • すでに複数のメンバあるいは同メンバ無いで pc_address および pc_address_pre (または mobile のそれ)について複数で同じメールアドレスが登録されているメンバについてはそのデータを削除する

関連するチケット

関連している OpenPNE 3 - Bug(バグ) #3544: 「全メンバーをコミュニティ参加させる」リンクによって招待済みで登録していないメンバが登録できなくなる場合がある Won't fix(対応せず) 2014-01-07

関係しているリビジョン

リビジョン 141d053e (差分)
sano が9ヶ月前に追加

improved performance while join all members to community (fixes #4052, BP from #927)

リビジョン 7ca2c856 (差分)
sano が9ヶ月前に追加

fix syntax error (fixes #4052, BP from #927)

リビジョン 8d3dbe20 (差分)
kaoru nishizoe7ヶ月前に追加

(fixed #4052, BP from #3544-8) is_active の条件に NULL の場合を追加

リビジョン 93127ec9
kaoru nishizoe5ヶ月前に追加

Merge pull request #392 from isaosano/t-4052

improved performance while join all members to community (fixes #4052, BP from #927)

履歴

#1 isao sano9ヶ月前に更新

  • 関連している Bug(バグ) #3544: 「全メンバーをコミュニティ参加させる」リンクによって招待済みで登録していないメンバが登録できなくなる場合がある を追加

#2 isao sano9ヶ月前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.8.22 に変更

#3 isao sano9ヶ月前に更新

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

https://github.com/openpne/OpenPNE3/pull/392
にてプルリクエストしました。

#4 kaoru nishizoe9ヶ月前に更新

  • 対象バージョンOpenPNE 3.8.22 から OpenPNE 3.8.x に変更

#6 Shinichi Urabe8ヶ月前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

https://redmine.openpne.jp/issues/3544#note-8 と同様の理由により差し戻し

#7 kaoru nishizoe7ヶ月前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

#8 Shinichi Urabe7ヶ月前に更新

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

#9 kaoru nishizoe6ヶ月前に更新

  • 対象バージョンOpenPNE 3.8.x から OpenPNE 3.8.23 に変更

#10 isao sano5ヶ月前に更新

  • ステータスPending Testing(テスト待ち) から Pending Merge(マージ待ち) に変更
  • 進捗率70 から 80 に変更

試験完了しました。
問題ありません。

#11 kaoru nishizoe5ヶ月前に更新

  • ステータスPending Merge(マージ待ち) から Fixed(完了) に変更
  • 進捗率80 から 100 に変更

マージしました

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