diff --git a/src/opnsense/mvc/app/models/OPNsense/Base/Constraints/UniqueConstraint.php b/src/opnsense/mvc/app/models/OPNsense/Base/Constraints/UniqueConstraint.php index 2c194d6e1..1390084c6 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Base/Constraints/UniqueConstraint.php +++ b/src/opnsense/mvc/app/models/OPNsense/Base/Constraints/UniqueConstraint.php @@ -45,9 +45,18 @@ class UniqueConstraint extends BaseConstraint */ public function validate($validator, $attribute): bool { + $allowEmpty = ($this->getOption('allowEmpty') === 'Y') ? true : false; + if ($allowEmpty && !empty($this->getOptionValueList('addFields'))) { + throw new \Exception('UniqueConstraint allowEmpty and addFields cannot be used in tandem'); + } + $node = $this->getOption('node'); $fieldSeparator = chr(10) . chr(0); if ($node) { + if ($allowEmpty && empty((string)$node)) { + return true; + } + $containerNode = $node; $nodeName = $node->getInternalXMLTagName(); $parentNode = $node->getParentNode();