Project

General

Profile

Bug(バグ) #1816

管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できる

Added by Tsuyoshi Tsurushima over 8 years ago. Updated almost 4 years ago.

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

100%

3.6 で発生するか:
Yes
3.8 で発生するか:
Unknown (未調査)

Description

Overview (現象)

管理画面「招待メール送信」を利用すると、同一アドレスで複数登録できてしまう

再現手順

1.管理画面「招待メール送信」にて を招待。
→招待状1到着

2.再度、管理画面「招待メール送信」にて を招待
→招待状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」を挿入する必要があります。


Related issues

Related to OpenPNE 3 - Backport(バックポート) #1878: 管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できる Fixed(完了) 2010-11-28 2011-06-24
Related to opAuthMailAddressPlugin - Bug(バグ) #2127: 招待メールを二度送信するとDoctrine_Connection_Mysql_Exceptionになる Invalid(無効) 2011-05-23
Related to opAuthMailAddressPlugin - Bug(バグ) #1815: 既に新規登録申請を行ったアドレスで2度目に新規登録申請を行うとInternal Server Errorになる Fixed(完了) 2010-11-28
Related to OpenPNE 3 - Backport(バックポート) #2293: 管理画面 招待メール送信 を利用すると同じメールアドレスを重複登録できる Fixed(完了) 2010-11-28
Related to OpenPNE 3 - Bug(バグ) #2340: 重複登録しないように修正する前の環境で送信した招待メールでは重複登録が可能になってしまっている Fixed(完了) 2011-08-03

Associated revisions

Revision b6471e84 (diff)
Added by Masato Nagasawa over 8 years ago

fixed duplicate email addresses when sending invitations in the pc_backend (fixes #1816)

Revision 2c52d99e (diff)
Added by Masato Nagasawa over 8 years ago

fixed remove unnecessary description (fixes #1816)

History

#1 Updated by Masato Nagasawa over 8 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Masato Nagasawa
  • Target version set to OpenPNE 3.7.0
  • 3.6 で発生するか set to 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」を挿入する必要があります。

#2 Updated by Masato Nagasawa over 8 years ago

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

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

#3 Updated by Masato Nagasawa over 8 years ago

テスト結果

  • 新規登録からメールを送信
    OK
  • 管理画面からメールを送信
    OK
  • 新規登録からメール送信後、管理画面からメールを送信
    OK
  • 管理画面からメール送信後、新規登録からメール送信
    Doctrine_Connection_Mysql_Exception になってしまう。
  • 新規登録からメール送信後、再度新規登録からメール送信
    Doctrine_Connection_Mysql_Exception になってしまう。
  • 管理画面からメール送信後、再度管理画面からメールを送信
    OK

Doctrine_Connection_Mysql_Exception でエラーになっている問題は、
この修正以前から存在するバグであるため別チケットにて対応する必要があります。

#4 Updated by Naoya Tozuka over 8 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

変更点確認しました。

AdminInviteForm.class.php 74行目の $memberConfigTable は使われていないようなので、必要なければ削除してください。
(#3 の「Doctrine_Connection_Mysql_Exception でエラーになっている問題」のチケットが既にありましたら教えてください)

#5 Updated by Masato Nagasawa over 8 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

更新履歴 2c52d99ee4f105148a125f2be8b189800bb634fe で適用されました。

#6 Updated by Masato Nagasawa over 8 years ago

(#3 の「Doctrine_Connection_Mysql_Exception でエラーになっている問題」のチケットが既にありましたら教えてください)

#2127 にてチケットを作成しました。

#7 Updated by Naoya Tozuka over 8 years ago

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

修正確認しました。OKです。

チケット作成 (#2127) ありがとうございます。

#8 Updated by isao sano about 8 years ago

重複登録とは別の問題かもしれませんが、
携帯版での新規登録と招待メールの挙動がPC版と異なるため報告いたします。
以下は仕様でしょうか?

「ログインページのお知らせ」メールに関して

0.opAuthMailAddressPluginで招待モードを「招待なしでの登録を許可する」に設定する。
1.すでに登録されているユーザーでログイン画面アクセス
2.新規登録よりメールで登録に遷移。
3.アドレス登録のために空メールを送る
4.「ログインページのお知らせ」というメールが届く

このメールは何通でも受け取ることが出来る

招待メールを何通も送信できる

1.登録されていないユーザーの携帯アドレスに招待メールを送信する
2.携帯に招待メールが届く
3.再度手順1のユーザーに招待メールを送る
4.携帯に招待メールが届く

手順4のメールでは登録画面にアクセスできるが、手順2のメールに記載されているURLからはアクセスできない。

#9 Updated by Yuya Watanabe about 8 years ago

修正前に送信されたメールのURLを用いると修正後でも重複登録可能である問題は #2340 に記載しました。

元情報:http://redmine.openpne.jp/issues/2293#note-4

#10 Updated by Fumie Toyooka almost 8 years ago

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

テストOKです。

#11 Updated by kaoru n almost 4 years ago

  • 3.8 で発生するか set to Unknown (未調査)

Also available in: Atom PDF