validation for future and negative times (#512)

This commit is contained in:
Kevin Papst
2019-01-21 01:51:57 +01:00
committed by GitHub
parent 5b1ec1eb8f
commit 5539f68a54
6 changed files with 44 additions and 6 deletions

View File

@@ -25,6 +25,7 @@ use Symfony\Component\Validator\Context\ExecutionContextInterface;
* )
* @ORM\Entity(repositoryClass="App\Repository\TimesheetRepository")
* @ORM\HasLifecycleCallbacks()
* @Assert\Callback("validate")
*/
class Timesheet
{
@@ -163,9 +164,9 @@ class Timesheet
{
$this->end = $end;
// FIXME test and then remove it, this should not be neccessary
if (null === $end) {
$this->duration = 0;
$this->rate = 0;
}
return $this;
@@ -345,12 +346,8 @@ class Timesheet
}
/**
* These validations are used in places, where we don't use a form yet (like the API).
*
* @param ExecutionContextInterface $context
* @param mixed $payload
*
* @Assert\Callback
* @param $payload
*/
public function validate(ExecutionContextInterface $context, $payload)
{
@@ -411,5 +408,13 @@ class Timesheet
->setTranslationDomain('validators')
->addViolation();
}
if (time() < $this->getBegin()->getTimestamp()) {
$context->buildViolation('The begin date cannot be in the future.')
->atPath('begin')
->setTranslationDomain('validators')
->addViolation();
}
}
}