Backport(バックポート) #2164
完了ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう
100%
説明
ProfileForm で日付型のプロフィール項目の最大値・最小値の入力欄に now などの strtotime() が解釈できる文字列を入力すると、そのプロフィール項目を保存した時点の日付が DB に保存されてしまう。
この問題は #930 の 4e1f2665 の変更で混入したもの。
たとえば日付型プロフィールの最大値を today や now などにして保存すると、 2010-09-17 といった入力時点の日付で登録されてしまう。これらの文字列はそのまま DB に保存し、メンバーがプロフィールを入力した際に now や 2010-09-17 や next Sunday といった文字列をその時点での日付に変換した上で、メンバーの入力値と比較するのが正しい挙動である。
Kousuke Ebihara さんが13年以上前に更新
- 対象バージョン を OpenPNE3.6beta11 から OpenPNE3.6beta12 に変更
親チケットが「テスト待ち」「完了」でないものをすべて beta12 以降での対応とします。
Maki Takahashi さんが13年以上前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を Shingo Yamada から Maki Takahashi に変更
BP引き受けます
Minoru Takai さんが13年以上前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 6fd556d92eae912b7315de6d387f929b536679f8 で適用されました。
Maki Takahashi さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Rejected(差し戻し) に変更
親チケットを差し戻しましたので、BPチケットも差し戻しいたします
Minoru Takai さんが13年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Review(レビュー待ち) に変更
更新履歴 6f41f5683b4b5f1ca1c729f212c03c6293d06e88 で適用されました。
Shingo Yamada さんが13年以上前に更新
下記の差分が一致していることを確認しました。
master | stable-3.6.x |
---|---|
b51d54adc43ef3dc945236b714e692b96f9da74e | 6f41f5683b4b5f1ca1c729f212c03c6293d06e88 |
afee7267847f2350da4accd21e181a6c1729be3b | 6e25ff6beb8e1e97a11abaa28820ca26a560dfad |
a932c17831a732fee4754a3b4242d2fe36a3d35a | 2d4813bf2f4ee2f83a7c90f8985d26e69618ef8b |
9072bbd231dc28faaf9b010c0622fe7c99639d89 | 6fd556d92eae912b7315de6d387f929b536679f8 |
Shingo Yamada さんが13年以上前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
Yuma Sakata さんが13年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Rejected(差し戻し) に変更
- 進捗率 を 70 から 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)で識別子に半角英数字以外を用いるとエラーになります。
Minoru Takai さんが13年以上前に更新
- ステータス を Rejected(差し戻し) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 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版と異なり、プロフィール編集時点でバリデータに弾かれ「る」のか
- (※)また、そもそも識別名に使える文字は何なのか
については追えていませんが、このようなバグがあることを示しておきます。
Yuma Sakata さんが13年以上前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストOKです。