http://redmine.openpne.jp/
http://redmine.openpne.jp/favicon.ico
2010-03-11T04:20:31Z
OpenPNE Issue Tracking System
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=2112
2010-03-11T04:20:31Z
Shogo Kawahara
kawahara@bucyou.net
<ul></ul><p>2系から3系にコンバートするとき、<br />2系のDB上(c_profile)では値がないときdefaultとして0がセットされており、<br />3系ではmax, minともに0に変換されます。</p>
<p>これはコンバートの問題ではなく、max=0,min=0であったときは、<br />文字数制限をかけないなどの対応をするのが適切かと思います。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=3676
2010-07-05T06:46:46Z
Mutsumi Imamura
imamura@openpne.jp
<ul><li><strong>題名</strong> を <i>2系で入力文字数を指定していなかったプロフィール項目の文字数制限が、コンバート後に0~0文字になる</i> から <i>プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう</i> に変更</li><li><strong>対象バージョン</strong> を <i>OpenPNE 3.6beta1</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4128
2010-07-17T10:45:11Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>対象バージョン</strong> を <i>OpenPNE 3.6beta1</i> から <i>OpenPNE 3.7.0</i> に変更</li></ul>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4214
2010-07-20T05:34:54Z
Minoru Takai
main.coeurl@gmail.com
<ul><li><strong>ステータス</strong> を <i>New(新規)</i> から <i>Accepted(着手)</i> に変更</li><li><strong>担当者</strong> を <i>Minoru Takai</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4463
2010-07-27T14:17:03Z
Minoru Takai
main.coeurl@gmail.com
<ul></ul><p>コンバート後の挙動を確認しました。</p>
<p>少なくとも2系では、最小値、最大値に関する制限が全くなく、min > max であるような指定や、文字列の長さとして負値を設定するようなことが可能になっています。</p>
<p>今回の問題は、最小値、最大値を未指定にしていた場合、コンバートすると3系で min, max が 0, 0 となってしまうというものですが、これは文字列の長さに関しては対応の仕様があるものの、数値の下限上限に関しては自然な対応が思いつきません。</p>
<p>数値に関して、2系で明示的に (min, max) = (1, 5) と指定していれば、数値として 1~5 が許されるプロフィール項目を意味します。 (min, max) = (1, 1) であれば 1 のみが許される項目になります。ここで、 (min, max) = (0, 0) が指定されていれば 0 のみが許される項目と考えるのが自然かと思われますが、これを (min, max) = (NULL, NULL) とみなすという対応は自然でしょうか。</p>
<p>と、ここまで書きましたが、</p>
<blockquote>
<p>2系から3系にコンバートするとき、</p>
</blockquote>
<p>2系のDB上(c_profile)では値がないときdefaultとして0がセットされており、<br />3系ではmax, minともに0に変換されます。</p>
<p>と示されている通り、2系では明示的に指定していても、(min, max) = (0, 0) の場合は下限上限なしという判断になっていました。ここで2つの対応方法が考えられます。</p>
<ul>
<li>(1) 2系の設計が悪いだけなので、3系では特に何も対応しない(コンバート直後は min, max が 0, 0 になるが、それをプロフィール設定で変更してもらうことを仕様とする)。</li>
<li>(2) コンバート直後に「0文字以内で入力してください」というエラーが出ることを問題であると考え、(min, max) = (0, 0) だけは例外的に範囲指定がされていないものとして扱う。</li>
</ul>
<p>文字列の長さに関して (min, max) = (0, 0) になるのが問題であると思っていたので、後者の対応を考えていましたが、数値の下限上限を考えると前者の方が好ましいように思いました(後者による対応は、数値 0 のみを入力として許すプロフィール項目の作成手段を提供しないことになります)。</p>
<p>コンバート直後に「0文字以内で入力してください」というエラーが出ることが問題かどうかの認識によって対応方法が異なるということを示しておきます。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4498
2010-07-28T11:29:42Z
Minoru Takai
main.coeurl@gmail.com
<ul></ul><p>対応方法を更に示します。</p>
<ul>
<li>(3) コンバート時に (min, max) = (0, 0) であるレコードを (NULL, NULL) に変換して保存する</li>
<li>(4) コンバート後に、どこかのタイミングで (0, 0) であるプロフィール項目の最小値最大値を持つレコードの値を (NULL, NULL) に変更する</li>
</ul>
<p>(2)と(4) を併せた対応を考えていますが、修正すべきソースコードの箇所が分からず調査中です。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4510
2010-07-28T12:22:46Z
Minoru Takai
main.coeurl@gmail.com
<ul></ul><p>対応方針</p>
<p>lib/util/opFormItemGenerator.class.php<br />generateValidator() メソッド内</p>
<pre>
if ($field['ValueType'] === 'integer' || $field['FormType'] === 'date')
{
if (!empty($field['ValueMin']))
{
$option['min'] = $field['ValueMin'];
}
if (!empty($field['ValueMax']))
{
$option['max'] = $field['ValueMax'];
}
}
else
{
if (isset($field['ValueMin']))
{
$option['min_length'] = $field['ValueMin'];
}
if (isset($field['ValueMax']))
{
$option['max_length'] = $field['ValueMax'];
}
}
</pre>
<p>後半 else ブロック内で、isset() に加えて、max > 0 という条件を与えます。<br />更に、2系あるいは <a class="issue tracker-1 status-7 priority-3 priority-lowest" title="Bug(バグ): プロフィール項目の日付やテキストの最小値を最大値より大きくして設定できてしまう (Pending Fixing(修正待ち))" href="http://redmine.openpne.jp/issues/940">#940</a> 修正前の3系にて、大小関係が不正な (min, max) が指定されたプロフィール項目がある場合にも対応できるよう、 min <= max という if 文をラップします。</p>
<p>if (isset($field['ValueMax'])) ブロック内の末に以下の記述を追記します。</p>
<pre>
if (1 > (int)$field['ValueMax'] || (isset($field['ValueMin']) && (int)$field['ValueMin'] > (int)$field['ValueMax']))
{
unset($option['min_length']);
unset($option['max_length']);
}
</pre>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4559
2010-07-29T02:20:11Z
Minoru Takai
main.coeurl@gmail.com
<ul><li><strong>ステータス</strong> を <i>Accepted(着手)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>0</i> から <i>50</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="(fixes #837) changed to invalidate min/max limit, if (min,max) tuple is invalid (i.e. min>max or ..." href="http://redmine.openpne.jp/projects/op3/repository/revisions/d41df217719462f71f29c6f30b0b4ae549b627ed">d41df217719462f71f29c6f30b0b4ae549b627ed</a> で適用されました。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=4752
2010-08-05T09:32:05Z
Shogo Kawahara
kawahara@bucyou.net
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul><p><a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug(バグ): opFormItemGenerator::generateValidator() の 数値用バリデータ生成時 ValueMax, ValueMin が 0の場合は 範囲指定されない (Fixed(完了))" href="http://redmine.openpne.jp/issues/1449">#1449</a> での変更と合わさって若干冗長なコードになっている気もしますが、別問題としとします。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=5244
2010-08-25T11:21:15Z
Kousuke Ebihara
ebihara@tejimaya.com
<ul><li><strong>3.6 で発生するか</strong> を <i>Yes</i> にセット</li></ul>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=6453
2010-10-17T17:39:02Z
Minoru Takai
main.coeurl@gmail.com
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Pending Review(レビュー待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>50</i> に変更</li></ul><p>更新履歴 <a class="changeset" title="(fixes #837, BP from #1276) changed to invalidate min/max limit, if (min,max) tuple is invalid (i..." href="http://redmine.openpne.jp/projects/op3/repository/revisions/808691c0eaf4fbfb7fb5ffcd56ad8030634f0aae">808691c0eaf4fbfb7fb5ffcd56ad8030634f0aae</a> で適用されました。</p>
<p>↑3.4のコミットです</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=6464
2010-10-18T02:51:35Z
Minoru Takai
main.coeurl@gmail.com
<ul><li><strong>ステータス</strong> を <i>Pending Review(レビュー待ち)</i> から <i>Pending Testing(テスト待ち)</i> に変更</li><li><strong>進捗率</strong> を <i>50</i> から <i>70</i> に変更</li></ul><p>ステータスを正しいものに戻します。</p>
OpenPNE 3 - Bug(バグ) #837: プロフィール項目設定の文字数制限でmax=0,min=0と設定できてしまう
http://redmine.openpne.jp/issues/837?journal_id=11760
2011-10-21T11:05:16Z
Fumie Toyooka
toyooka@tejimaya.com
<ul><li><strong>ステータス</strong> を <i>Pending Testing(テスト待ち)</i> から <i>Fixed(完了)</i> に変更</li><li><strong>進捗率</strong> を <i>70</i> から <i>100</i> に変更</li></ul><p>テストOKです。</p>