Bug(バグ) #1816
完了管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できる
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」を挿入する必要があります。
Masato Nagasawa さんがほぼ14年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Masato Nagasawa にセット
- 対象バージョン を OpenPNE 3.7.0 にセット
- 3.6 で発生するか を Yes にセット
本来であれば 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)
修正時の注意点として、
すでに新規登録を行っているメールアドレスであった場合に、
member_config に「is_admin_invited」を挿入する必要があります。
Masato Nagasawa さんがほぼ14年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 b6471e843c4d470a48d3f136c83f015bc6cdcd9f で適用されました。
Masato Nagasawa さんがほぼ14年前に更新
テスト結果
- 新規登録からメールを送信
OK
- 管理画面からメールを送信
OK
- 新規登録からメール送信後、管理画面からメールを送信
OK
- 管理画面からメール送信後、新規登録からメール送信
Doctrine_Connection_Mysql_Exception になってしまう。
- 新規登録からメール送信後、再度新規登録からメール送信
Doctrine_Connection_Mysql_Exception になってしまう。
- 管理画面からメール送信後、再度管理画面からメールを送信
OK
Doctrine_Connection_Mysql_Exception でエラーになっている問題は、
この修正以前から存在するバグであるため別チケットにて対応する必要があります。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
変更点確認しました。
AdminInviteForm.class.php 74行目の $memberConfigTable は使われていないようなので、必要なければ削除してください。
(#3 の「Doctrine_Connection_Mysql_Exception でエラーになっている問題」のチケットが既にありましたら教えてください)
Masato Nagasawa さんが13年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 2c52d99ee4f105148a125f2be8b189800bb634fe で適用されました。
Masato Nagasawa さんが13年以上前に更新
(#3 の「Doctrine_Connection_Mysql_Exception でエラーになっている問題」のチケットが既にありましたら教えてください)
#2127 にてチケットを作成しました。
Naoya Tozuka さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
修正確認しました。OKです。
チケット作成 (#2127) ありがとうございます。
isao sano さんが13年以上前に更新
重複登録とは別の問題かもしれませんが、
携帯版での新規登録と招待メールの挙動がPC版と異なるため報告いたします。
以下は仕様でしょうか?
「ログインページのお知らせ」メールに関して¶
0.opAuthMailAddressPluginで招待モードを「招待なしでの登録を許可する」に設定する。
1.すでに登録されているユーザーでログイン画面アクセス
2.新規登録よりメールで登録に遷移。
3.アドレス登録のために空メールを送る
4.「ログインページのお知らせ」というメールが届く
このメールは何通でも受け取ることが出来る
招待メールを何通も送信できる¶
1.登録されていないユーザーの携帯アドレスに招待メールを送信する
2.携帯に招待メールが届く
3.再度手順1のユーザーに招待メールを送る
4.携帯に招待メールが届く
手順4のメールでは登録画面にアクセスできるが、手順2のメールに記載されているURLからはアクセスできない。
Yuya Watanabe さんが13年以上前に更新
修正前に送信されたメールのURLを用いると修正後でも重複登録可能である問題は #2340 に記載しました。
元情報:http://redmine.openpne.jp/issues/2293#note-4
Fumie Toyooka さんが約13年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。