プロジェクト

全般

プロフィール

Backport(バックポート) #2410

opAuthRegisterFormMailAddress::doSave()の$memberConfig->setName()の処理で、レコードの存在チェックがない

Kousuke Ebihara12年以上前に追加. 約12年前に更新.

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

100%


説明

詳細

opAuthRegisterFormMailAddressクラスのdoSave()メソッドで、事前に登録されたメールアドレス(mobile_address_preまたはpc_address_pre)を正式なアドレス(mobile_addressまたはpc_address)に付け替える(member_configレコードのnameを変更する)処理を行っているが、mobileアプリケーションの場合はmobile_address_pre、そうでない場合はpc_address_preのレコードが存在する前提のコードになっている。

例えば以下のような(割と容易な)手順で、mobileアプリケーションからの登録にもかかわらずmobile_address_preが存在しないという状況になる

  1. 管理画面からPC系メールアドレス(gmailなど)宛に招待を送る
  2. 招待を受け取ったユーザーが、メールを携帯に転送する
  3. 携帯でメンバー登録URLにアクセス
  4. そのまま携帯からメンバー登録フォームを送信
  5. エラーになり登録できない(画面にはエラーとは表示されない)

提案

コアの仕様、ポリシー(セキュリティ)に関連するため、根本的な対処はこのチケットの範囲外になってしまうと思いますが、いくつか考慮が必要な点を書いておきます。

  • そもそも説明に書いたような手順を許可するのかどうか
    • 次の項目とも関連
  • 説明に書いたような手順で携帯から登録ができても、設定によっては携帯からはログインできない、という挙動にするのか

なお、暫定的な対処方法は、$memberConfig->setName の前に$memberConfigのnullチェックを行い、nullであればエラーとするよう修正することです。
(この時点ではなく、登録フローのもう少し前でエラーになった方が親切でしょうけれど、それには上に書いたような仕様の検討が必要でしょうし)


関連するチケット

関連している opAuthMailAddressPlugin - Bug(バグ) #1668: opAuthRegisterFormMailAddress::doSave()の$memberConfig->setName()の処理で、レコードの存在チェックがない Fixed(完了) 2010-10-09

履歴

#1 Kousuke Ebihara12年以上前に更新

  • 対象バージョン1.3.4 から 1.2.2 に変更

#2 Yuya Watanabe約12年前に更新

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

#3 Yuya Watanabe約12年前に更新

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

#4 Kousuke Ebihara約12年前に更新

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

#5 Yuma Sakata約12年前に更新

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

テストOKです。

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