プロジェクト

全般

プロフィール

Bug(バグ) #2344

完了

携帯で新規登録が出来ない

Mutsumi Imamura さんが13年以上前に追加. 13年以上前に更新.

ステータス:
Fixed(完了)
優先度:
Urgent(急いで)
担当者:
対象バージョン:
開始日:
2011-08-10
期日:
進捗率:

100%

予定工数:
3.6 で発生するか:
3.8 で発生するか:

説明

Overview (現象)

OpenPNE3.4.15-devで、携帯で新規登録ができない。
新規登録リンクをクリックし、opAuthMailAddress/requestRegisterURLのページから登録ページのURLを取得しようとすると、「サーバーが混み合っています」というエラーメッセージが携帯メールに届く。

再現バージョン

  • OpenPNE3.4.13 〜 OpenPNE3.4.15-dev
  • opAuthMailAddressPlugin 1.2.1

その他のバージョンでは再現しません。

再現手順

  1. 管理画面のopAuthMailAdressPluginの設定で招待モードの設定を「招待なしでの登録を許可する」にする
  2. 携帯でログイン画面にアクセスする
  3. 新規登録リンクをクリックし、opAuthMailAddress/requestRegisterURLのページにアクセスする
  4. メールで登録のリンクをクリックし登録ページのURLを取得するメールを送る
  5. エラーメッセージが届く

Causes (原因)

新規登録時に plugins/opAuthMailAddressPlugin/apps/mobile_mail_frontend/modules/opAuthMailAddress/actions/actions.class.php から InviteForm が呼ばれるが InviteForm::save() を実施された際に 143行目に以下のような処理が存在する。 #2044 で myUser クラスの親クラスを sfOpenPNESecurityUser から sfBasicSecurityUser に変更されたことにより、getMemberId() getCurrentAuthMode() は定義されていないため、この処理でエラーとなってしまう

  • OpenPNE 3.6 用の opAuthMailAddressPlugin では InviteForm クラスは呼ばれず、構造自体異なるため、3.4.15-dev で発生するような問題はない
  • OpenPNE 3.2 については mobile_mail_frontend アプリケーションの myUser クラスの親クラスは fOpenPNESecurityUser であるので問題はでない
$this->member->setInviteMemberId($user->getMemberId());
$this->member->setConfig('register_auth_mode', $this->getOption('authMode', $user->getCurrentAuthMode()));

Way to fix (修正内容)

  • InviteForm::save() 処理内、$user オブジェクトが sfOpenPNESecurityUser でなければ、$user->getMemberId() $user->getCurrentAuthMode() から値を取得する必要のある処理をさせない修正を実施する
    • 管理画面の AdminInviteForm クラスは InviteForm クラスを親クラスとして扱っているが、save() メソッドはオーバーライドされているので、Member::setInviteMemberId() が呼ばれることがないので上記修正で問題はでないと考えられる
    • Member::setInviteMemberId() に紹介者のIDをセットする場合は、いずれの場合も、sfUser::getMemberId() が呼べる処理の流れになっているため、上記修正で問題ないと考える

関連するチケット 1 (0件未完了1件完了)

関連している OpenPNE 3 - Backport(バックポート) #2044: pc_frontend から利用可能な認証プラグインがない状態でメール投稿がおこなえないFixed(完了)Masato Nagasawa2010-12-10

操作

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