Add extra validation.

This commit is contained in:
James Cole
2022-01-26 18:43:14 +01:00
parent f0a5257921
commit 374793eb92

View File

@@ -147,18 +147,24 @@ class ReportFormRequest extends FormRequest
$range = $this->get('daterange'); $range = $this->get('daterange');
$parts = explode(' - ', (string)$range); $parts = explode(' - ', (string)$range);
if (2 === count($parts)) { if (2 === count($parts)) {
try { $string = $parts[1];
$date = new Carbon($parts[1]); // validate as date
// if regex for YYYY-MM-DD:
} catch (Exception $e) { $pattern = '/^(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][\d]|3[01])$/';
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage()); if (preg_match($pattern, $string)) {
Log::error($error); try {
throw new FireflyException($error, 0, $e); $date = new Carbon($parts[1]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
}
return $date;
} }
$error = sprintf('"%s" is not a valid date range: %s', $range, 'invalid format :(');
Log::error($error);
throw new FireflyException($error, 0);
} }
return $date; return $date;
} }
@@ -175,15 +181,23 @@ class ReportFormRequest extends FormRequest
$range = $this->get('daterange'); $range = $this->get('daterange');
$parts = explode(' - ', (string)$range); $parts = explode(' - ', (string)$range);
if (2 === count($parts)) { if (2 === count($parts)) {
try { $string = $parts[0];
$date = new Carbon($parts[0]); // validate as date
// if regex for YYYY-MM-DD:
} catch (Exception $e) { $pattern = '/^(19|20)\d\d-(0[1-9]|1[012])-(0[1-9]|[12][\d]|3[01])$/';
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage()); if (preg_match($pattern, $string)) {
Log::error($error); try {
throw new FireflyException($error, 0, $e); $date = new Carbon($parts[1]);
} catch (Exception $e) {
$error = sprintf('"%s" is not a valid date range: %s', $range, $e->getMessage());
Log::error($error);
throw new FireflyException($error, 0, $e);
}
return $date;
} }
$error = sprintf('"%s" is not a valid date range: %s', $range, 'invalid format :(');
Log::error($error);
throw new FireflyException($error, 0);
} }
return $date; return $date;