操作
Backport(バックポート) #1878
完了管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できる
開始日:
2010-11-28
期日:
2011-06-24
進捗率:
100%
予定工数:
説明
Overview (現象)¶
管理画面「招待メール送信」を利用すると、同一アドレスで複数登録できてしまう
再現手順¶
1.管理画面「招待メール送信」にて new-member@example.com を招待。
→招待状1到着
2.再度、管理画面「招待メール送信」にて new-member@example.com を招待
→招待状2到着
3.招待状1から会員登録
→member id 2にて登録完了
4.ログアウトせずに招待状2から会員登録画面を表示
5.登録完了
→member id 3にて登録完了
Causes (原因)¶
本来であれば pc_addres_pre に重複するメールアドレスが存在した場合、
メンバーを追加せずに pc_address_token を更新するべきですが、
現状ではメンバーを新規に追加してしまっている状態です。
mysql> SELECT * FROM member_config WHERE value = 'new-member@example.com'; +----+-----------+----------------+------------------------+----------------+----------------------------------+---------------------+---------------------+ | id | member_id | name | value | value_datetime | name_value_hash | created_at | updated_at | +----+-----------+----------------+------------------------+----------------+----------------------------------+---------------------+---------------------+ | 5 | 2 | pc_address_pre | new-member@example.com | NULL | c10d06478a66688156179ad60fd8316c | 2010-12-02 12:03:51 | 2010-12-02 12:03:51 | | 10 | 3 | pc_address_pre | new-member@example.com | NULL | c10d06478a66688156179ad60fd8316c | 2010-12-02 12:04:53 | 2010-12-02 12:04:53 | | 15 | 4 | pc_address_pre | new-member@example.com | NULL | c10d06478a66688156179ad60fd8316c | 2010-12-02 12:04:55 | 2010-12-02 12:04:55 | +----+-----------+----------------+------------------------+----------------+----------------------------------+---------------------+---------------------+ 3 rows in set (0.00 sec)
Way to fix (修正内容)¶
メールアドレス重複時には MemberTable::createPre() を呼ばないようにする。
修正時の注意点として、
すでに新規登録を行っているメールアドレスであった場合に、
member_config に「is_admin_invited」を挿入する必要があります。
操作