mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-24 02:58:43 +02:00
Validate date/time fields using their regular expression during an import (or synchro) to avoid passing wrong formats as-is (e.g. 01/02/16 can become 01/02/0016 instead of 01/02/2016 if you use the 4 digits format for years and pass only 2 digits !)
SVN:trunk[4096]
This commit is contained in:
@@ -827,6 +827,8 @@ class BulkChange
|
||||
{
|
||||
$sFormat = $sDateFormat;
|
||||
}
|
||||
$oFormat = new DateTimeFormat($sFormat);
|
||||
$sRegExp = $oFormat->ToRegExpr();
|
||||
if (!preg_match('/'.$sRegExp.'/', $this->m_aData[$iRow][$iCol]))
|
||||
{
|
||||
$aResult[$iRow]["__STATUS__"]= new RowStatus_Issue(Dict::S('UI:CSVReport-Row-Issue-DateFormat'));
|
||||
|
||||
@@ -217,15 +217,24 @@ function ReadMandatoryParam($oP, $sParam, $sSanitizationFilter)
|
||||
function ChangeDateFormat($sProposedDate, $sDateFormat)
|
||||
{
|
||||
// Make sure this is a valid MySQL datetime
|
||||
$oDate = DateTime::createFromFormat($sDateFormat, $sProposedDate);
|
||||
if ($oDate !== false)
|
||||
$oFormat = new DateTimeFormat($sDateFormat);
|
||||
$sRegExpr = $oFormat->ToRegExpr();
|
||||
if (!preg_match('/'.$sRegExpr.'/', $sProposedDate))
|
||||
{
|
||||
$sDate = $oDate->format(AttributeDateTime::GetInternalFormat());
|
||||
return $sDate;
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
$oDate = DateTime::createFromFormat($sDateFormat, $sProposedDate);
|
||||
if ($oDate !== false)
|
||||
{
|
||||
$sDate = $oDate->format(AttributeDateTime::GetInternalFormat());
|
||||
return $sDate;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user