Project

General

Profile

Backport(バックポート) #2164

ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう

Added by isao sano over 11 years ago. Updated over 11 years ago.

Status:
Fixed(完了)
Priority:
High(高め)
Target version:
Start date:
2011-06-09
Due date:
% Done:

100%


Description

ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう。

この問題は #930 の 4e1f2665 の変更で混入したもの。

たとえば日付型プロフィールの最大値を today や now などにして保存すると、 2010-09-17 といった入力時点の日付で登録されてしまう。これらの文字列はそのまま DB に保存し、メンバーがプロフィールを入力した際に now や 2010-09-17 や next Sunday といった文字列をその時点での日付に変換した上で、メンバーの入力値と比較するのが正しい挙動である。


Related issues

Related to OpenPNE 3 - Bug(バグ) #1595: ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう Fixed(完了) 2010-09-17
Related to OpenPNE 3 - Bug(バグ) #2356: 管理画面でプロフィール項目の識別名に全角文字や角括弧が使えてしまう Fixed(完了) 2011-08-17

Associated revisions

Revision 6fd556d9 (diff)
Added by Minoru Takai over 11 years ago

(fixed #2164, BP from #1595) revised to store an inputted value even if it is a relative date.

Revision 2d4813bf (diff)
Added by Minoru Takai over 11 years ago

(fixes #2164, BP from #1595) uses opValidatorDate (from sfValidatorDate) for date value in ProfileForm

Revision 6e25ff6b (diff)
Added by Minoru Takai over 11 years ago

(fixes #2164, BP from #1595) fixed message of about date-format.

Revision 6f41f568 (diff)
Added by Minoru Takai over 11 years ago

(fixes #2164, BP from #1595) fixed for coding standard, and changed message of about date-format.

History

#1 Updated by Kousuke Ebihara over 11 years ago

  • Target version changed from OpenPNE3.6beta11 to OpenPNE3.6beta12

親チケットが「テスト待ち」「完了」でないものをすべて beta12 以降での対応とします。

#2 Updated by isao sano over 11 years ago

  • Target version changed from OpenPNE3.6beta12 to OpenPNE3.6beta13

#3 Updated by Maki Takahashi over 11 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee changed from Shingo Yamada to Maki Takahashi

BP引き受けます

#4 Updated by Minoru Takai over 11 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

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

#5 Updated by Minoru Takai over 11 years ago

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

#6 Updated by Minoru Takai over 11 years ago

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

#7 Updated by Maki Takahashi over 11 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

親チケットを差し戻しましたので、BPチケットも差し戻しいたします

#8 Updated by Minoru Takai over 11 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)

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

#9 Updated by Maki Takahashi over 11 years ago

release-3.6beta13ブランチに取り込み済みです

#10 Updated by Shingo Yamada over 11 years ago

下記の差分が一致していることを確認しました。

master stable-3.6.x
b51d54adc43ef3dc945236b714e692b96f9da74e 6f41f5683b4b5f1ca1c729f212c03c6293d06e88
afee7267847f2350da4accd21e181a6c1729be3b 6e25ff6beb8e1e97a11abaa28820ca26a560dfad
a932c17831a732fee4754a3b4242d2fe36a3d35a 2d4813bf2f4ee2f83a7c90f8985d26e69618ef8b
9072bbd231dc28faaf9b010c0622fe7c99639d89 6fd556d92eae912b7315de6d387f929b536679f8

#11 Updated by Shingo Yamada over 11 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#12 Updated by Yuma Sakata over 11 years ago

  • Status changed from Pending Testing(テスト待ち) to Rejected(差し戻し)
  • % Done changed from 70 to 50

テスト実施しましたが、気になる点がありましたので確認お願いします。

ProfileForm で日付型の場合、mobile_frontendの動作確認

  • 試験手順
    1. プロフィール項目追加画面(/pc_backend.php/profile/edit)にアクセスする
    2. フォームタイプで日付を選択する
    3. 最小値にlast Monday、最大値にnowを入れsubmit
    4. mobile_frontendログイン後、プロフィール編集ページ(/member/edit/profile)でアクセスする
    5. 管理画面で設定した範囲内の値で設定する
  • 試験結果
    「正しくありません。」とエラーメッセージが表示される
  • 修正方針
    管理画面で設定した範囲内の値を入力した場合、mobile_frontendで設定できるように修正お願いします。
    pc_frontendで設定できることは確認済みです。
  • 追記
    プロフィール項目追加画面(/pc_backend.php/profile/edit)で識別子に半角英数字以外を用いるとエラーになります。

#13 Updated by Minoru Takai over 11 years ago

  • Status changed from Rejected(差し戻し) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

note-12 の指摘内容を検証しました。

結論から言うと、別のバグによる問題でした。このチケットで扱う内容ではありませんのでテスト待ちにします。

この動作テスト時には、以下の手順 2. で示す「別のバグを引き起こす特定の操作」を行なわないでください。

手順

1. プロフィール項目追加画面(/pc_backend.php/profile/edit)にアクセスする
2. 識別名に「全角文字を含めた文字列」を入力する
3. プロフィール項目を作成する
4. mobile_frontend ログイン後、プロフィール編集ページ(/member/edit/profile)にアクセスする
5. プロフィール編集ページで「確定」ボタンを押す

すると、「正しくありません。」というエラーメッセージが表示され、プロフィール編集が成功しない。

これは、手順 2. の『識別名に「全角文字を含めた文字列」を入力する』という特定の操作を行った場合に、管理画面側では何のエラーもなくプロフィール項目の作成が成功するものの、メンバー側のプロフィール変更ページの携帯版ではエラーが生じるというバグによるものです。

識別名が半角英字列(※)ではない場合について、

  • なぜ pc_backend では、プロフィール作成時点でバリデータに弾かれ「ない」のか
  • なぜ pc_frontend では、プロフィール編集時点でバリデータに弾かれ「ない」のか
  • なぜ mobile_frontend では、PC版と異なり、プロフィール編集時点でバリデータに弾かれ「る」のか
  • (※)また、そもそも識別名に使える文字は何なのか

については追えていませんが、このようなバグがあることを示しておきます。

#14 Updated by Yuma Sakata over 11 years ago

  • Status changed from Pending Testing(テスト待ち) to Fixed(完了)
  • % Done changed from 70 to 100

テストOKです。

Also available in: Atom PDF