summaryrefslogtreecommitdiff
path: root/app/Validator
diff options
context:
space:
mode:
authorJLGC @monolinux <monolinux@junglacode.org>2016-08-15 23:13:16 -0500
committerJLGC @monolinux <monolinux@junglacode.org>2016-08-15 23:13:16 -0500
commit683c0464093f6a7976236c68653c2a2cc5dae280 (patch)
treebf176ecd82415cc4952eea071b7d264dd5fd68b4 /app/Validator
parentb1e795fc5b45369f7b9b565b1e106d2673361977 (diff)
parent5f82a942c0011bf91947b2c1d627c0907bda0c92 (diff)
Merge https://github.com/kanboard/kanboard
Diffstat (limited to 'app/Validator')
-rw-r--r--app/Validator/ProjectValidator.php8
-rw-r--r--app/Validator/TagValidator.php76
-rw-r--r--app/Validator/TaskValidator.php47
3 files changed, 82 insertions, 49 deletions
diff --git a/app/Validator/ProjectValidator.php b/app/Validator/ProjectValidator.php
index 9ef59111..8c6117a4 100644
--- a/app/Validator/ProjectValidator.php
+++ b/app/Validator/ProjectValidator.php
@@ -28,7 +28,7 @@ class ProjectValidator extends BaseValidator
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\Required('name', t('The project name is required')),
+ new Validators\NotEmpty('name', t('This field cannot be empty')),
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),
@@ -47,11 +47,15 @@ class ProjectValidator extends BaseValidator
*/
public function validateCreation(array $values)
{
+ $rules = array(
+ new Validators\Required('name', t('The project name is required')),
+ );
+
if (! empty($values['identifier'])) {
$values['identifier'] = strtoupper($values['identifier']);
}
- $v = new Validator($values, $this->commonValidationRules());
+ $v = new Validator($values, array_merge($this->commonValidationRules(), $rules));
return array(
$v->execute(),
diff --git a/app/Validator/TagValidator.php b/app/Validator/TagValidator.php
new file mode 100644
index 00000000..0567cf3e
--- /dev/null
+++ b/app/Validator/TagValidator.php
@@ -0,0 +1,76 @@
+<?php
+
+namespace Kanboard\Validator;
+
+use SimpleValidator\Validator;
+use SimpleValidator\Validators;
+
+/**
+ * Tag Validator
+ *
+ * @package Kanboard\Validator
+ * @author Frederic Guillot
+ */
+class TagValidator extends BaseValidator
+{
+ /**
+ * Validate 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)
+ {
+ $v = new Validator($values, $this->commonValidationRules());
+ $result = $v->execute();
+ $errors = $v->getErrors();
+
+ if ($result && $this->tagModel->exists($values['project_id'], $values['name'])) {
+ $result = false;
+ $errors = array('name' => array(t('The name must be unique')));
+ }
+
+ return array($result, $errors);
+ }
+
+ /**
+ * Validate 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)
+ {
+ $rules = array(
+ new Validators\Required('id', t('Field required')),
+ );
+
+ $v = new Validator($values, array_merge($rules, $this->commonValidationRules()));
+ $result = $v->execute();
+ $errors = $v->getErrors();
+
+ if ($result && $this->tagModel->exists($values['project_id'], $values['name'], $values['id'])) {
+ $result = false;
+ $errors = array('name' => array(t('The name must be unique')));
+ }
+
+ return array($result, $errors);
+ }
+
+ /**
+ * Common validation rules
+ *
+ * @access protected
+ * @return array
+ */
+ protected function commonValidationRules()
+ {
+ return array(
+ new Validators\Required('project_id', t('Field required')),
+ new Validators\Required('name', t('Field required')),
+ new Validators\MaxLength('name', t('The maximum length is %d characters', 255), 255),
+ );
+ }
+}
diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php
index 90bda6f3..8aa5c440 100644
--- a/app/Validator/TaskValidator.php
+++ b/app/Validator/TaskValidator.php
@@ -182,53 +182,6 @@ class TaskValidator extends BaseValidator
}
/**
- * Validate assignee change
- *
- * @access public
- * @param array $values Form values
- * @return array $valid, $errors [0] = Success or not, [1] = List of errors
- */
- public function validateAssigneeModification(array $values)
- {
- $rules = array(
- new Validators\Required('id', t('The id is required')),
- new Validators\Required('project_id', t('The project is required')),
- new Validators\Required('owner_id', t('This value is required')),
- );
-
- $v = new Validator($values, array_merge($rules, $this->commonValidationRules()));
-
- return array(
- $v->execute(),
- $v->getErrors()
- );
- }
-
- /**
- * Validate category change
- *
- * @access public
- * @param array $values Form values
- * @return array $valid, $errors [0] = Success or not, [1] = List of errors
- */
- public function validateCategoryModification(array $values)
- {
- $rules = array(
- new Validators\Required('id', t('The id is required')),
- new Validators\Required('project_id', t('The project is required')),
- new Validators\Required('category_id', t('This value is required')),
-
- );
-
- $v = new Validator($values, array_merge($rules, $this->commonValidationRules()));
-
- return array(
- $v->execute(),
- $v->getErrors()
- );
- }
-
- /**
* Validate project modification
*
* @access public