プロジェクト

全般

プロフィール

Bug(バグ) #1816

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

Tsuyoshi Tsurushima13年以上前に追加. 8年以上前に更新.

ステータス:
Fixed(完了)
優先度:
High(高め)
担当者:
対象バージョン:
開始日:
2010-11-28
期日:
進捗率:

100%

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

説明

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」を挿入する必要があります。


関連するチケット

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

関係しているリビジョン

リビジョン b6471e84 (差分)
Masato Nagasawa13年以上前に追加

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

リビジョン 2c52d99e (差分)
Masato Nagasawaほぼ13年前に追加

fixed remove unnecessary description (fixes #1816)

履歴

#1 Masato Nagasawa13年以上前に更新

  • ステータス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」を挿入する必要があります。

#2 Masato Nagasawa13年以上前に更新

  • ステータスAccepted(着手) から Pending Review(レビュー待ち) に変更
  • 進捗率0 から 50 に変更

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

#3 Masato Nagasawa13年以上前に更新

テスト結果

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

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

#4 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Rejected(差し戻し) に変更

変更点確認しました。

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

#5 Masato Nagasawaほぼ13年前に更新

  • ステータスRejected(差し戻し) から Pending Review(レビュー待ち) に変更

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

#6 Masato Nagasawaほぼ13年前に更新

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

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

#7 Naoya Tozukaほぼ13年前に更新

  • ステータスPending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
  • 進捗率50 から 70 に変更

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

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

#8 isao sanoほぼ13年前に更新

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

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

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

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

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

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

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

#9 Yuya Watanabe12年以上前に更新

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

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

#10 Fumie Toyooka12年以上前に更新

  • ステータスPending Testing(テスト待ち) から Fixed(完了) に変更
  • 進捗率70 から 100 に変更

テストOKです。

#11 kaoru n8年以上前に更新

  • 3.8 で発生するかUnknown (未調査) にセット

他の形式にエクスポート: Atom PDF