|
<?php |
|
|
|
namespace Kanboard\Validator; |
|
|
|
use SimpleValidator\Validator; |
|
use SimpleValidator\Validators; |
|
use Kanboard\Model\ProjectModel; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProjectValidator extends BaseValidator |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
private function commonValidationRules() |
|
{ |
|
return array( |
|
new Validators\Integer('id', t('This value must be an integer')), |
|
new Validators\Integer('priority_default', t('This value must be an integer')), |
|
new Validators\Integer('priority_start', t('This value must be an integer')), |
|
new Validators\Integer('priority_end', t('This value must be an integer')), |
|
new Validators\Integer('is_active', t('This value must be an integer')), |
|
new Validators\MaxLength('name', t('The maximum length is %d characters', 65535), 65535), |
|
new Validators\MaxLength('identifier', t('The maximum length is %d characters', 50), 50), |
|
new Validators\MaxLength('start_date', t('The maximum length is %d characters', 10), 10), |
|
new Validators\MaxLength('end_date', t('The maximum length is %d characters', 10), 10), |
|
new Validators\AlphaNumeric('identifier', t('This value must be alphanumeric')) , |
|
new Validators\Unique('identifier', t('The identifier must be unique'), $this->db->getConnection(), ProjectModel::TABLE), |
|
new Validators\Email('email', t('Email address invalid')) , |
|
new Validators\Unique('email', t('The project email must be unique across all projects'), $this->db->getConnection(), ProjectModel::TABLE), |
|
); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function validateCreation(array $values) |
|
{ |
|
if (! empty($values['identifier'])) { |
|
$values['identifier'] = strtoupper($values['identifier']); |
|
} |
|
|
|
$rules = array( |
|
new Validators\Required('name', t('The project name is required')), |
|
); |
|
|
|
$v = new Validator($values, array_merge($rules, $this->commonValidationRules())); |
|
|
|
return array( |
|
$v->execute(), |
|
$v->getErrors() |
|
); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function validateModification(array $values) |
|
{ |
|
if (! empty($values['identifier'])) { |
|
$values['identifier'] = strtoupper($values['identifier']); |
|
} |
|
|
|
$rules = array( |
|
new Validators\NotEmpty('name', t('This field cannot be empty')), |
|
new Validators\Required('id', t('This value is required')), |
|
); |
|
|
|
$v = new Validator($values, array_merge($rules, $this->commonValidationRules())); |
|
|
|
return array( |
|
$v->execute(), |
|
$v->getErrors() |
|
); |
|
} |
|
} |
|
|