Project

General

Profile

Bug(バグ) #2346

退会時にそのメンバーが書いた日記コメントも削除されてしまう

Added by Kousuke Ebihara over 12 years ago. Updated about 12 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2011-08-11
Due date:
% Done:

100%

3.6 で発生するか:
[QA]バグ通知済:
No
3.8 で発生するか:
Unknown (未調査)

Description

Overview (現象)

メンバーが削除操作をおこなうと、 diary_comment.member_id の外部キーによって定義されている ON DELETE 条項に従って、そのメンバーが書いたコメントが削除されてしまう。

OpenPNE 2 では、日記コメントについては削除処理の対象に入っておらず、退会時にも投稿したコメントが消えないような実装になっていた。 http://trac.openpne.jp/browser/OpenPNE/trunk/webapp/lib/db/etc.php#L388

再現環境

この現象は OpenPNE 3.4.9.2 で SNS を運営しているユーザより報告を受けたものである。

この報告をうけ、現時点の stable-3.6.x ブランチ上の OpenPNE 3 で opDiaryPlugin の master を使用して構築した DB に対して、日記コメントを insert する SQL と、そのレコードに紐付いたメンバーを delete する SQL を実行し、日記コメントのレコードが削除されていることを確認した。

再現方法

1. ユーザAで日記を投稿する
2. ユーザBで1の日記にコメントを投稿する
3. ユーザBを退会させる
4. 1の日記にアクセスした際に、2の日記コメントが削除されている

Causes (原因)

schema.ymlのMemberテーブルとの関連づけにおいてonDelete CASCADEとなっている

Way to fix (修正内容)

上記、onDelete句を「SET NULL」に変更する


Related issues

Related to opDiaryPlugin - Bug(バグ) #2472: 1.4.0.1 で修正されたマイグレートスクリプト (リビジョン番号 9) の実行に失敗することがある Invalid(無効) 2011-10-06
Related to opDiaryPlugin - Bug(バグ) #2439: 1.4.0 で追加されたマイグレートスクリプト (リビジョン番号 9) の実行に失敗することがある Fixed(完了) 2011-09-26

Associated revisions

Revision 86989de3 (diff)
Added by Maki Takahashi over 12 years ago

(fixes #2346) change the foreign key reference to `member` on `diary_comment` from onDelete CASCADE to SET NULL

History

#1 Updated by Shingo Yamada over 12 years ago

  • Priority changed from Normal(通常) to High(高め)

#2 Updated by Shingo Yamada over 12 years ago

  • 360対象 set to RC1

#3 Updated by Shingo Yamada over 12 years ago

  • Assignee set to Maki Takahashi

#4 Updated by Maki Takahashi over 12 years ago

  • Status changed from New(新規) to Accepted(着手)

#5 Updated by Maki Takahashi over 12 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • Target version set to 205
  • % Done changed from 0 to 50

https://github.com/martini2002jp/opDiaryPlugin/commit/86989de3a9846c5bcf5736bc43de09a84e6736d8 にて対応しました。

stable-3.6.xブランチおよびMasterブランチのOpenPNE3で、退会したユーザの日記コメントが削除されず
コメント者の情報欄には非SNSユーザー表示名設定が反映されることをPC版および携帯版にて確認しました。

#6 Updated by Maki Takahashi over 12 years ago

  • Description updated (diff)

#7 Updated by Rimpei Ogawa about 12 years ago

  • Target version changed from 205 to v1.4.0

#8 Updated by Anonymous about 12 years ago

更新履歴 86989de3a9846c5bcf5736bc43de09a84e6736d8 で適用されました。

#9 Updated by Rimpei Ogawa about 12 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

Pull request 取り込みました。レビューもOKです。

#10 Updated by isao sano about 12 years ago

  • Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
  • % Done changed from 70 to 50

以下の手順でテストを行ったところ、再現が確認できたため差し戻します。

1.メンバーAでfrontendログイン後、メンバーBの日記にコメントする
2.日記コメント後、メンバーAを退会させる
3.メンバーBでログイン後、手順1の日記にアクセスして日記コメントを確認する
4.コメントが削除される

修正ログがmasterブランチにあることは確認しました。

#11 Updated by Rimpei Ogawa about 12 years ago

  • Status changed from Rejected(差し戻し) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

DB構造の変更が入っていますので、以下のコマンドを実行してから再度テストをお願いします。

$ ./symfony openpne:migrate --target=opDiaryPlugin --no-update-plugin

#12 Updated by Yuma Sakata about 12 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

Also available in: Atom PDF