From b8449cfcf88037d6c56b2ebcf0c567dbdd47f6a8 Mon Sep 17 00:00:00 2001 From: Ad Schellevis Date: Fri, 29 May 2015 11:34:46 +0200 Subject: [PATCH] (mvc) change option field to use inclusion in stead of regex match --- .../OPNsense/Base/FieldTypes/OptionField.php | 25 +++---------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php index 24e23dc8e..f45046b76 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/FieldTypes/OptionField.php @@ -29,7 +29,7 @@ */ namespace OPNsense\Base\FieldTypes; -use Phalcon\Validation\Validator\Regex; +use Phalcon\Validation\Validator\InclusionIn; /** * Class OptionField @@ -89,34 +89,17 @@ class OptionField extends BaseField } /** - * @return array returns Text/regex validator + * @return array returns InclusionIn validator */ public function getValidators() { - // build validation mask - $validationMask = '('; - $countid = 0 ; - foreach ($this->internalOptionList as $key => $value) { - if ($countid > 0) { - $validationMask .= '|'; - } - if ($key == "") { - // match on empty strings - $validationMask .= "^$"; - } else { - $validationMask .= $key ; - } - $countid++; - } - $validationMask .= ')'; - if ($this->internalValidationMessage == null) { $msg = "option not in list" ; } else { $msg = $this->internalValidationMessage; } - if (($this->internalIsRequired == true || $this->internalValue != null) && $validationMask != null) { - return array(new Regex(array('message' => $msg,'pattern'=>trim($validationMask)))); + if (($this->internalIsRequired == true || $this->internalValue != null)) { + return array(new InclusionIn(array('message' => $msg,'domain'=>array_keys($this->internalOptionList)))); } else { // empty field and not required, skip this validation. return array();