summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-01-11 22:07:39 -0500
committerFrederic Guillot <fred@kanboard.net>2016-01-11 22:07:39 -0500
commit3699073371acc66ccacb56a89e87147a9c90d8c4 (patch)
treec21c55936e472655aaa5aca3a976a2d02a0ed63a /app
parente31185a2bd85d7d8e16a614cb21dfdbff10ce070 (diff)
Move project validator methods
Diffstat (limited to 'app')
-rw-r--r--app/Api/Me.php2
-rw-r--r--app/Api/Project.php4
-rw-r--r--app/Controller/Project.php4
-rw-r--r--app/Core/Base.php1
-rw-r--r--app/Model/Project.php69
-rw-r--r--app/ServiceProvider/ClassProvider.php1
-rw-r--r--app/Validator/ProjectValidator.php83
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()
+ );
+ }
+}