ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Opened 11 years ago

Closed 11 years ago

Last modified 10 years ago

#2931 closed defect (fixed)

設定変更の秘密の質問の設定で答えが空白だと、秘密の質問のみが更新される

Reported by: imamura623 Owned by: shingo
Priority: minor Milestone: OpenPNE2.12.4
Component: 指定しない Version: 2.10.x & 2.12.x & 2.14.x
Keywords: OpenPNE2.10.10 OpenPNE2.13.2 Cc:

Description (last modified by kudo)

■現象

設定変更の秘密の質問の設定で答えが空白だと、秘密の質問のみが更新される

■原因

秘密の質問の答えが未入力でも質問を変更できる為。

■修正内容

秘密の質問が変更され、答えが未入力の場合エラーを出すように修正。 (認証モード:SlavePNE時と質問値:0の場合を除く) ※質問値が0かつ答えが未入力の場合は質問値を0のままキープする

■関連情報

元のDescription

http://sns.openpne.jp/?m=pc&a=page_fh_diary&target_c_diary_id=18389より転記

So-net SNSのオーナーより挙がっている要望を記載させていただきます。

「秘密の質問」につきまして、以下の改善を要望いたします。

現在、SNSの設定変更画面にて「秘密の質問」を選択し、「秘密の質問の答え」を未入力のまま「設定変更」をクリックすると、「秘密の質問」のみが変更されてしまいます。

例)現在の仕様

秘密の質問・・・A
秘密の質問の答え・・・A'

▼
▼秘密の質問・・・A を、Bに変更し、
▼秘密の質問の答えは空白で「設定変更」をクリック
▼

秘密の質問・・・B
秘密の質問の答え・・・A'

秘密の質問の変更の際は、秘密の質問の答えが入力されていなければ、変更できない、という仕様に変更していただけませんでしょうか?

ご検討をお願いいたします。

Change History (21)

comment:1 Changed 11 years ago by nakasone

Keywords: 再現待ち removed

以下のような確認を行ったところ再現できました。

■確認ブラウザ

  • !FireFox3

■確認バージョン

  • 2.10.x
  • 2.12.x
  • trunk

■手順

  1. 設定変更画面
  2. 秘密の質問を変更する
  3. 質問の答えが空白のまま設定変更
  4. 秘密の質問だけが変更されている

comment:2 Changed 11 years ago by syamada

Owner: changed from nobody to syamada
Status: newassigned

修正します。

comment:3 Changed 11 years ago by shingo

Owner: changed from syamada to shingo
Status: assignednew

comment:4 Changed 11 years ago by shingo

Description: modified (diff)
Status: newassigned

以下のリビジョンで修正しました。ご確認ください。

comment:5 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: OpenPNE2.10.10 OpenPNE2.13.3 確認中 added
Milestone: OpenPNE2.12.4

comment:6 Changed 11 years ago by kiwa

Keywords: OpenPNE2.13.2 added; OpenPNE2.13.3 removed

comment:7 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • この修正は、 CSV インポートなどによって c_member.c_password_query_id が 0 の状態で登録されたメンバーを考慮していません
    • pc_page_h_config を表示した際に、秘密の質問の選択肢のうち一番はじめのもの(デフォルトでは「母または父の旧姓は?」)が常に選択された状態になるため、秘密の質問の答えを入力せずに pc_do_h_config_3 で扱われる他の設定項目を変更しようとすると、以下の if 文に引っかかりエラーとなってしまいます
       46         if ($c_password_query_id != $c_member['c_password_query_id']) {
       47             if (!strlen($c_password_query_answer)) {
       48                 $error_messages[] = '秘密の質問の答えを入力してください。';
       49             }
       50         }
      
  • SlavePNE 以外の認証モード時に登録されたメンバー(c_password_query_id が 1以上であるメンバー)が、認証モードが SlavePNE に変更された後に継続して利用することを OpenPNE は想定していませんが、念のために認証モードが SlavePNE の場合は、 $c_password_query_id のチェックをおこなわないようにするのがベターではないでしょうか

comment:8 Changed 11 years ago by shingo

再度、修正します。

comment:9 Changed 11 years ago by shingo

Description: modified (diff)
Keywords: 確認待ち added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:10 Changed 11 years ago by ebihara

Keywords: 確認中 added; 確認待ち removed

comment:11 Changed 11 years ago by ebihara

Keywords: 差し戻し added; 確認中 removed
  • 2.10 には OPENPNE_AUTH_MODE という定数は存在しません
  • stable-2.12.x/webapp/modules/pc/do/h_config_3.php の 50 行目 の if 文は不要な気がします。 51 行目でおこなっている、 $c_memberc_password_query_id? != 0 のチェックのみで充分ではないでしょうか
  • 0 か 0 でないかという判定の場合は、 if ($hoge), if (!$hoge) というように書くことができますが、今回のケースのようにルーズなチェックで構わない場合、個人的には == や != を使わない形で書くことが多いです。ほぼ好みの問題ではありますが == や != を省略するほうが望ましいかどうか再検討してみてはどうでしょう

comment:12 Changed 11 years ago by shingo

Keywords: 確認待ち added; 差し戻し removed

以下のリビジョンで修正しました。ご確認ください。

comment:13 Changed 11 years ago by shingo

Keywords: 確認中 added; 確認待ち removed

comment:14 Changed 11 years ago by ebihara

Keywords: テスト待ち added; 確認中 removed

comment:15 Changed 11 years ago by kiwa

Keywords: 差し戻し added; テスト待ち removed

以下の現象の確認をお願いします。

version

※2.12.3では再現せず

内容

OPENPNE_AUTH_MODE:slavepne の状態で設定変更(pc_page_h_config)で「設定変更(a=do_h_config_3)」の「設定変更」ボタンを押下すると、「秘密の質問の答えを入力してください。」とエラーメッセージが表示されて設定を変更できない

comment:16 in reply to:  15 Changed 11 years ago by ebihara

Replying to kiwa:

以下の現象の確認をお願いします。

version

※2.12.3では再現せず

内容

OPENPNE_AUTH_MODE:slavepne の状態で設定変更(pc_page_h_config)で「設定変更(a=do_h_config_3)」の「設定変更」ボタンを押下すると、「秘密の質問の答えを入力してください。」とエラーメッセージが表示されて設定を変更できない

SlavePNE 時に c_password_query_id が存在するメンバー(想定している環境下では存在し得ないメンバー)で設定変更をおこなおうとしたのが原因のようです。これについては comment:7 で指摘しましたが対策がおこなわれていなかったようです。修正をおこないます。

comment:17 Changed 11 years ago by ebihara

Keywords: 確認中 added; 差し戻し removed

以下のリビジョンで修正しました。

comment:18 Changed 11 years ago by ogawa

以下のリビジョンでエラーチェックを確実にSlavePNE以外を対象とするよう変更しました。

comment:19 Changed 11 years ago by ebihara

Keywords: テスト待ち added; 確認中 removed

comment:20 Changed 11 years ago by kiwa

Keywords: テスト待ち removed
Resolution: fixed
Status: assignedclosed

確認しました。問題ありません。

comment:21 Changed 10 years ago by kudo

Description: modified (diff)
Note: See TracTickets for help on using tickets.