diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Validation.php b/src/opnsense/mvc/app/models/OPNsense/Base/Validation.php index 70b64449aea..022dec20755 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/Validation.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/Validation.php @@ -36,6 +36,7 @@ class Validation public function __construct($validators = []) { $this->validators = $validators; + $this->phalcon_validation = new \Phalcon\Validation(); } /** @@ -58,10 +59,14 @@ public function appendMessage($message) */ public function add($key, $validator) { - if (empty($this->validators[$key])){ - $this->validators[$key] = []; + if (is_a($validator, "OPNsense\Base\BaseValidator")) { + if (empty($this->validators[$key])){ + $this->validators[$key] = []; + } + $this->validators[$key][] = $validator; + } else { + $this->phalcon_validation->add($key, $validator); } - $this->validators[$key][] = $validator; return $this; } @@ -73,22 +78,15 @@ public function add($key, $validator) public function validate($data) { $this->data = $data; - // XXX: version check - $validation = new \Phalcon\Validation(); - $validation->bind($this, $data); - foreach ($data as $key => $value) { if (!empty($this->validators[$key])) { foreach ($this->validators[$key] as $validator) { - if (is_a($validator, "OPNsense\Base\BaseValidator")) { - $validator->validate($this, $key); - } else { - $validator->validate($validation, $key); - } + $validator->validate($this, $key); } } } - $phalconMsgs = $validation->getMessages(); + // XXX: temporary dual validation + $phalconMsgs = $this->phalcon_validation->validate($data); if (!empty($phalconMsgs)) { foreach ($phalconMsgs as $phalconMsg) { $this->messages[] = $phalconMsg;