Bug(バグ) #3545
未完了
管理画面「プロフィール項目」で、複数選択可能なプロフィール項目のプロフィール選択肢を削除した場合に、ユーザーがプロフィールを変更できなくなる場合がある
Chiharu Nakajima さんがほぼ11年前に追加.
ほぼ5年前に更新.
説明
管理画面「プロフィール項目」で、複数選択可能なプロフィール項目のプロフィール選択肢を削除した場合に、ユーザーがプロフィールを変更できなくなる場合がある。
発生手順(一例であり、他の手順でも発生する)
1.管理画面からプロフィール項目登録を選択し、フォームタイプを「複数選択」に設定した、任意のプロフィール項目を登録する。
2.プロフィール選択肢一覧で、手順1で登録したプロフィール項目に任意のプロフィール選択肢を登録する。
3.ユーザー画面のプロフィール編集画面から、手順2で登録したプロフィール選択肢を全て選択し、送信ボタンを押す。
4.管理画面で、プロフィール選択肢一覧から、手順2で登録したプロフィール選択肢を全て削除する。
5.ユーザー画面のプロフィール編集画面を表示し、送信ボタンを押す。
→プロフィールの編集が完了せず、白い画面が表示される。
#3294 の修正では、ユーザー画面でのバグは対応できているが、管理画面側でのバグに対応できていない。
備考(バグ修正確認時の注意):
DBの内容を確認しながら試験を実施すること
複数のパターンで試験を実施すること(選択肢の数、削除する選択肢のパターンなど)
関連するチケット
1 (0件未完了 — 1件完了)
メモ:
現状、管理画面から選択肢を削除すると、DBで以下の様な動作が発生する。
まず、ユーザー画面でプロフィール項目を選択した場合、以下の様なデータが登録される。
mysql> select * from member_profile where profile_id = 13;
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
| id | member_id | profile_id | profile_option_id | value | value_datetime | public_flag | tree_key | lft | rgt | level | created_at | updated_at |
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
| 1075 | 45 | 13 | NULL | | NULL | NULL | 1075 | 1 | 12 | 0 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1076 | 45 | 13 | 23 | | NULL | NULL | 1075 | 2 | 3 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1077 | 45 | 13 | 24 | | NULL | NULL | 1075 | 4 | 5 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1078 | 45 | 13 | 25 | | NULL | NULL | 1075 | 6 | 7 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1079 | 45 | 13 | 26 | | NULL | NULL | 1075 | 8 | 9 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1080 | 45 | 13 | 27 | | NULL | NULL | 1075 | 10 | 11 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
6 rows in set (0.00 sec)
id:1075のlft~rgtの数値(1~12)の間に、id:1076~1080のlft~rgtの数値(2~11)が並んで入っている状態となる。
これは、profile_id:13のプロフィール項目の、profile_option_id:23~27という選択肢をチェックしているということを表している(レコードが親子関係のようになっている)。
この状態で、profile_option_id:25の選択肢を管理画面で削除すると、以下のようにレコードが削除される(親子関係の子だけが削除される)。
mysql> select * from member_profile where profile_id = 13;
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
| id | member_id | profile_id | profile_option_id | value | value_datetime | public_flag | tree_key | lft | rgt | level | created_at | updated_at |
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
| 1075 | 45 | 13 | NULL | | NULL | NULL | 1075 | 1 | 12 | 0 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1076 | 45 | 13 | 23 | | NULL | NULL | 1075 | 2 | 3 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1077 | 45 | 13 | 24 | | NULL | NULL | 1075 | 4 | 5 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1079 | 45 | 13 | 26 | | NULL | NULL | 1075 | 8 | 9 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
| 1080 | 45 | 13 | 27 | | NULL | NULL | 1075 | 10 | 11 | 1 | 2014-01-14 15:57:55 | 2014-01-14 15:57:55 |
+------+-----------+------------+-------------------+-------+----------------+-------------+----------+------+------+-------+---------------------+---------------------+
5 rows in set (0.00 sec)
この時に、id:1075のlft~rgtの数値(1~12)の間に、抜けが発生していしまう(6~7が存在しない)。
- 対象バージョン を OpenPNE 3.9.0-old から OpenPNE 3.9.0 に変更
- 対象バージョン を OpenPNE 3.9.0 から OpenPNE 3.10.x に変更
他の形式にエクスポート: Atom
PDF