操作
Backport(バックポート) #1468
完了opFormItemGenerator::generateValidator() の 数値用バリデータ生成時 ValueMax, ValueMin が 0の場合は 範囲指定されない
開始日:
2010-07-28
期日:
進捗率:
100%
予定工数:
説明
Overview¶
opFormItemGenerator::generateValidator() の 数値用バリデータ生成時 ValueMax, ValueMin が 0の場合は 範囲指定されない
再現手順
- 範囲が 0 〜 1 である数値プロフィール項目を作成。
- プロフィール編集で -1 を入力
- 正常にプロフィールが登録できてしまう。
対象
OpenPNE3.0.x 〜 OpenPNE3.7.x-dev
Causes¶
184 if ($field['ValueType'] === 'integer' || $field['FormType'] === 'date') 185 { 186 if (!empty($field['ValueMin'])) 187 { 188 $option['min'] = $field['ValueMin']; 189 } 190 if (!empty($field['ValueMax'])) 191 { 192 $option['max'] = $field['ValueMax']; 193 } 194 }
ValueMinおよびValueMax を empty() を利用して判定しているためです。
Way to fix¶
tu nguyen ngoc さんが約14年前に更新
- ステータス を New(新規) から Accepted(着手) に変更
- 担当者 を tu nguyen ngoc にセット
tu nguyen ngoc さんが約14年前に更新
- ステータス を Accepted(着手) から Pending Review(レビュー待ち) に変更
- 進捗率 を 0 から 50 に変更
更新履歴 70b3170834b16721c77364173f29d0dfbcf68f83 で適用されました。
Kousuke Ebihara さんが約14年前に更新
- ステータス を Pending Review(レビュー待ち) から Pending Testing(テスト待ち) に変更
- 進捗率 を 50 から 70 に変更
http://redmine.openpne.jp/issues/1449#note-12 でこのバグチケットの確認中に発見した問題についてコメントしています。この問題については、コメントの通りこのチケットでは扱わないことにします。
問題ありません。 このチケットの確認中に now などの文字列が実際の日付に変換された上で DB に保存されてしまっているというバグを発見しました。これは実際には文字列として保存しておき、その文字列をバリデーションのために都度日付に直すのが正しい挙動です。このバグは #930 の 4e1f2665 の変更により混入したものと思われます。 このチケットでは日付の比較にも関わる変更がなされているので微妙なところですが、別のバグチケットを切って対処することにしましょう。
Hiroki Mogi さんが約14年前に更新
- ステータス を Pending Testing(テスト待ち) から Fixed(完了) に変更
- 進捗率 を 70 から 100 に変更
テストが終了しているので、ステータスを変更します。
操作