プロジェクト

全般

プロフィール

Bug(バグ) #3187

メンバー登録時にデータが不正な状態になった場合のメッセージ表示が適切でない

Yuma Sakata11年以上前に追加. 11年以上前に更新.

ステータス:
Won't fix(対応せず)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2012-08-29
期日:
進捗率:

0%

3.6 で発生するか:
Yes (はい)
[QA]バグ通知済:
いいえ
3.8 で発生するか:
Unknown (未調査)

説明

Overview (現象)

メンバー登録時にデータが不正な状態になった場合のメッセージ表示が異なる

Environment (再現バージョン)

OpenPNE3.6.3

Way to repro (再現手順)

1. 招待メールからユーザ登録を実施する
2. is_activeフラグが0のまま登録終了する(ログインできない)
3. 再度招待メールの登録用URLをブラウザで表示する

Way to fix (修正内容)

備考

is_acriveフラグが1(通常)の場合、「このページにはアクセスできません。」とエラーメッセージが表示されます。
is_acriveフラグが0(チケットの再現手順)の場合、「この登録用URLは携帯電話専用です。」とエラーメッセージが表示されます。


関連するチケット

関連している OpenPNE 3 - Bug(バグ) #3150: メンバー登録時にデータが不正な状態になることがある Fixed(完了) 2012-08-07
関連している opAuthMailAddressPlugin - Backport(バックポート) #3188: メンバー登録時にデータが不正な状態になった場合のメッセージ表示が異なる Invalid(無効) 2012-08-29
関連している opAuthMailAddressPlugin - Backport(バックポート) #3189: メンバー登録時にデータが不正な状態になった場合のメッセージ表示が異なる Invalid(無効) 2012-08-29

履歴

#1 Yuma Sakata11年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更
  • 担当者Youichi Kimura にセット

修正パッチ作成済みですが、
手元の環境で is_active=0 の状態が再現できないため、動作確認してません。

--- a/apps/pc_frontend/modules/opAuthMailAddress/actions/actions.class.php
+++ b/apps/pc_frontend/modules/opAuthMailAddress/actions/actions.class.php
@@ -53,6 +53,7 @@ class opAuthMailAddressActions extends opAuthMailAddressPluginAction
     opActivateBehavior::disable();
     $authMode = $memberConfig->getMember()->getConfig('register_auth_mode');
     $pcAddressPre = $memberConfig->getMember()->getConfig('pc_address_pre');
+    $mobileAddressPre = $memberConfig->getMember()->getConfig('mobile_address_pre');
     opActivateBehavior::enable();

     if ('MobileUID' === $authMode)
@@ -60,6 +61,7 @@ class opAuthMailAddressActions extends opAuthMailAddressPluginAction
       $authMode = 'MailAddress';
     }
     $this->forward404Unless($authMode === $this->getUser()->getCurrentAuthMode());
+    $this->forward404Unless($pcAddressPre || $mobileAddressPre);

     if (!$pcAddressPre)
     {

#2 Yuma Sakata11年以上前に更新

  • ステータスAccepted(着手) から Invalid(無効) に変更

#3 Yuma Sakata11年以上前に更新

  • ステータスInvalid(無効) から New(新規) に変更

#4 Yuma Sakata11年以上前に更新

  • ステータスNew(新規) から Accepted(着手) に変更

@ukimura

DB の設定いじって is_active=0 の状態を再現して、note-1 修正パッチの動作確認お願いします。

#5 Youichi Kimura11年以上前に更新

この問題の原因となっている #3150 の修正が完了していない状態で修正を行うため、現時点での調査や報告されている現象からどのような不具合が発生しているか仮定して修正を行います。

  • 仮定
    1. member/registerInput (GET) にて新規に登録するメンバーの情報を入力し「新規登録」ボタンが押される
    2. member/registerInput (POST) にて member_config テーブル内にある登録中のメンバーの pc_address_pre が pc_address に変更される (PCの場合)
    3. その後、opAuthMailAddress/registerEnd にリダイレクトされ登録中のメンバーの is_active が 1 にセットされるのが正常な動作であるが、「新規登録」ボタンの連打等によってこのページのロードが行われず is_active の値が 0 のままになった

上記の内容が正しければ pc_address_pre 及び mobile_address_pre が存在せず、かつ member.is_active が 0 のまま となっているメンバーが #3150 によって発生した不正なメンバー情報と推定できます。

is_acriveフラグが1(通常)の場合、「このページにはアクセスできません。」とエラーメッセージが表示されます。
is_acriveフラグが0(チケットの再現手順)の場合、「この登録用URLは携帯電話専用です。」とエラーメッセージが表示されます。

チケットに書かれている「この登録用URLは携帯電話専用です。」という出力は、下記のコードで sfView::ERROR が返されたときに表示されます。

(apps/pc_frontend/modules/opAuthMailAddress/actions/actions.class.php)

    opActivateBehavior::disable();
    $authMode = $memberConfig->getMember()->getConfig('register_auth_mode');
    $pcAddressPre = $memberConfig->getMember()->getConfig('pc_address_pre');
    opActivateBehavior::enable();

    if ('MobileUID' === $authMode)
    {
      $authMode = 'MailAddress';
    }
    $this->forward404Unless($authMode === $this->getUser()->getCurrentAuthMode());

    if (!$pcAddressPre)
    {

      return sfView::ERROR;
    }

現時点での実装で sfView::ERROR が返されるのは pc_address_pre が存在しない 場合であり、この場合は「携帯電話専用の新規登録トークン」をPCからアクセスしようとしているものと判断するようです。

#3150 によって発生する不正なメンバーに対して「このページにはアクセスできません。」と表示するのであれば、

  • pc_address_pre は存在しないが、mobile_address_pre は存在する (携帯用の登録トークンにPCからアクセス)
    • => 「この登録用URLは携帯電話専用です。」と表示 (sfView::ERROR)
  • pc_address_pre は存在せず、mobile_address_pre も存在しない (#3150 によって発生した不正なユーザー)
    • => 「このページにはアクセスできません。」と表示 (foward404)
  • pc_address_pre は存在する
    • => 新規登録処理に進む

として判定するのが妥当だと思います。この方法による修正案は note-1 の通りです。

#6 Youichi Kimura11年以上前に更新

  • プロジェクトOpenPNE 3 から opAuthMailAddressPlugin に変更
  • [QA]バグ通知済いいえ にセット

#7 Yuma Sakata11年以上前に更新

  • 対象バージョンOpenPNE 3.9.0-old から 1.3.6 に変更

#8 Youichi Kimura11年以上前に更新

  • 題名メンバー登録時にデータが不正な状態になった場合のメッセージ表示が異なる から メンバー登録時にデータが不正な状態になった場合のメッセージ表示が適切でない に変更

#9 Youichi Kimura11年以上前に更新

  • ステータスAccepted(着手) から Won't fix(対応せず) に変更

このチケットで指摘されている「この登録用URLは携帯電話専用です。」のメッセージについて、最新の opAuthMailAddressPlugin では「メールアドレスが登録されていません。」に変更されていました。よって当チケットの修正は不要です。

https://redmine.openpne.jp/projects/op3/repository/revisions/aee7460cdda178b376e3e667181c643a6d5fe0f6/diff/plugins/opAuthMailAddressPlugin/i18n/messages.ja.xml

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