diff options
Diffstat (limited to 'app/Validator/Base.php')
-rw-r--r-- | app/Validator/Base.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/app/Validator/Base.php b/app/Validator/Base.php new file mode 100644 index 00000000..ba32a503 --- /dev/null +++ b/app/Validator/Base.php @@ -0,0 +1,54 @@ +<?php + +namespace Kanboard\Validator; + +use SimpleValidator\Validators; + +/** + * Base Validator + * + * @package validator + * @author Frederic Guillot + */ +class Base extends \Kanboard\Core\Base +{ + /** + * Execute multiple validators + * + * @access public + * @param array $validators List of validators + * @param array $values Form values + * @return array $valid, $errors [0] = Success or not, [1] = List of errors + */ + public function executeValidators(array $validators, array $values) + { + $result = false; + $errors = array(); + + foreach ($validators as $method) { + list($result, $errors) = $this->$method($values); + + if (! $result) { + break; + } + } + + return array($result, $errors); + } + + /** + * Common password validation rules + * + * @access protected + * @return array + */ + protected function commonPasswordValidationRules() + { + return array( + new Validators\Required('password', t('The password is required')), + new Validators\MinLength('password', t('The minimum length is %d characters', 6), 6), + new Validators\Required('confirmation', t('The confirmation is required')), + new Validators\Equals('password', 'confirmation', t('Passwords don\'t match')), + ); + } +} |