diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-01-11 22:07:39 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-01-11 22:07:39 -0500 |
commit | 3699073371acc66ccacb56a89e87147a9c90d8c4 (patch) | |
tree | c21c55936e472655aaa5aca3a976a2d02a0ed63a /app | |
parent | e31185a2bd85d7d8e16a614cb21dfdbff10ce070 (diff) |
Move project validator methods
Diffstat (limited to 'app')
-rw-r--r-- | app/Api/Me.php | 2 | ||||
-rw-r--r-- | app/Api/Project.php | 4 | ||||
-rw-r--r-- | app/Controller/Project.php | 4 | ||||
-rw-r--r-- | app/Core/Base.php | 1 | ||||
-rw-r--r-- | app/Model/Project.php | 69 | ||||
-rw-r--r-- | app/ServiceProvider/ClassProvider.php | 1 | ||||
-rw-r--r-- | app/Validator/ProjectValidator.php | 83 |
7 files changed, 90 insertions, 74 deletions
diff --git a/app/Api/Me.php b/app/Api/Me.php index 37851731..df8ec070 100644 --- a/app/Api/Me.php +++ b/app/Api/Me.php @@ -44,7 +44,7 @@ class Me extends Base 'is_private' => 1, ); - list($valid, ) = $this->project->validateCreation($values); + list($valid, ) = $this->projectValidator->validateCreation($values); return $valid ? $this->project->create($values, $this->userSession->getId(), true) : false; } diff --git a/app/Api/Project.php b/app/Api/Project.php index f934432d..8e311f7f 100644 --- a/app/Api/Project.php +++ b/app/Api/Project.php @@ -69,7 +69,7 @@ class Project extends Base 'description' => $description ); - list($valid, ) = $this->project->validateCreation($values); + list($valid, ) = $this->projectValidator->validateCreation($values); return $valid ? $this->project->create($values) : false; } @@ -81,7 +81,7 @@ class Project extends Base 'description' => $description ); - list($valid, ) = $this->project->validateModification($values); + list($valid, ) = $this->projectValidator->validateModification($values); return $valid && $this->project->update($values); } } diff --git a/app/Controller/Project.php b/app/Controller/Project.php index 5e75db4e..27c827d1 100644 --- a/app/Controller/Project.php +++ b/app/Controller/Project.php @@ -169,7 +169,7 @@ class Project extends Base } } - list($valid, $errors) = $this->project->validateModification($values); + list($valid, $errors) = $this->projectValidator->validateModification($values); if ($valid) { if ($this->project->update($values)) { @@ -329,7 +329,7 @@ class Project extends Base public function save() { $values = $this->request->getValues(); - list($valid, $errors) = $this->project->validateCreation($values); + list($valid, $errors) = $this->projectValidator->validateCreation($values); if ($valid) { $project_id = $this->project->create($values, $this->userSession->getId(), true); diff --git a/app/Core/Base.php b/app/Core/Base.php index 21e80628..723831e3 100644 --- a/app/Core/Base.php +++ b/app/Core/Base.php @@ -114,6 +114,7 @@ use Pimple\Container; * @property \Kanboard\Model\UserMetadata $userMetadata * @property \Kanboard\Model\Webhook $webhook * @property \Kanboard\Validator\PasswordResetValidator $passwordResetValidator + * @property \Kanboard\Validator\ProjectValidator $projectValidator * @property \Kanboard\Validator\SubtaskValidator $subtaskValidator * @property \Kanboard\Validator\SwimlaneValidator $swimlaneValidator * @property \Kanboard\Validator\TaskLinkValidator $taskLinkValidator diff --git a/app/Model/Project.php b/app/Model/Project.php index 8a949ba6..63077348 100644 --- a/app/Model/Project.php +++ b/app/Model/Project.php @@ -2,8 +2,6 @@ namespace Kanboard\Model; -use SimpleValidator\Validator; -use SimpleValidator\Validators; use Kanboard\Core\Security\Token; use Kanboard\Core\Security\Role; @@ -510,71 +508,4 @@ class Project extends Base ->eq('id', $project_id) ->save(array('is_public' => 0, 'token' => '')); } - - /** - * Common validation rules - * - * @access private - * @return array - */ - private function commonValidationRules() - { - return array( - new Validators\Integer('id', t('This value must be an integer')), - new Validators\Integer('is_active', t('This value must be an integer')), - new Validators\Required('name', t('The project name is required')), - new Validators\MaxLength('name', t('The maximum length is %d characters', 50), 50), - 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(), self::TABLE), - ); - } - - /** - * Validate project creation - * - * @access public - * @param array $values Form values - * @return array $valid, $errors [0] = Success or not, [1] = List of errors - */ - public function validateCreation(array $values) - { - if (! empty($values['identifier'])) { - $values['identifier'] = strtoupper($values['identifier']); - } - - $v = new Validator($values, $this->commonValidationRules()); - - return array( - $v->execute(), - $v->getErrors() - ); - } - - /** - * Validate project modification - * - * @access public - * @param array $values Form values - * @return array $valid, $errors [0] = Success or not, [1] = List of errors - */ - public function validateModification(array $values) - { - if (! empty($values['identifier'])) { - $values['identifier'] = strtoupper($values['identifier']); - } - - $rules = array( - new Validators\Required('id', t('This value is required')), - ); - - $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); - - return array( - $v->execute(), - $v->getErrors() - ); - } } diff --git a/app/ServiceProvider/ClassProvider.php b/app/ServiceProvider/ClassProvider.php index 58ef48fb..bb9e757e 100644 --- a/app/ServiceProvider/ClassProvider.php +++ b/app/ServiceProvider/ClassProvider.php @@ -86,6 +86,7 @@ class ClassProvider implements ServiceProviderInterface ), 'Validator' => array( 'PasswordResetValidator', + 'ProjectValidator', 'SubtaskValidator', 'SwimlaneValidator', 'TaskValidator', diff --git a/app/Validator/ProjectValidator.php b/app/Validator/ProjectValidator.php new file mode 100644 index 00000000..53cb7a37 --- /dev/null +++ b/app/Validator/ProjectValidator.php @@ -0,0 +1,83 @@ +<?php + +namespace Kanboard\Validator; + +use SimpleValidator\Validator; +use SimpleValidator\Validators; +use Kanboard\Model\Project; + +/** + * Project Validator + * + * @package validator + * @author Frederic Guillot + */ +class ProjectValidator extends Base +{ + /** + * Common validation rules + * + * @access private + * @return array + */ + private function commonValidationRules() + { + return array( + new Validators\Integer('id', t('This value must be an integer')), + new Validators\Integer('is_active', t('This value must be an integer')), + new Validators\Required('name', t('The project name is required')), + new Validators\MaxLength('name', t('The maximum length is %d characters', 50), 50), + 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(), Project::TABLE), + ); + } + + /** + * Validate project creation + * + * @access public + * @param array $values Form values + * @return array $valid, $errors [0] = Success or not, [1] = List of errors + */ + public function validateCreation(array $values) + { + if (! empty($values['identifier'])) { + $values['identifier'] = strtoupper($values['identifier']); + } + + $v = new Validator($values, $this->commonValidationRules()); + + return array( + $v->execute(), + $v->getErrors() + ); + } + + /** + * Validate project modification + * + * @access public + * @param array $values Form values + * @return array $valid, $errors [0] = Success or not, [1] = List of errors + */ + public function validateModification(array $values) + { + if (! empty($values['identifier'])) { + $values['identifier'] = strtoupper($values['identifier']); + } + + $rules = array( + new Validators\Required('id', t('This value is required')), + ); + + $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); + + return array( + $v->execute(), + $v->getErrors() + ); + } +} |