sanitizer suppress list, allow empty attachment

This commit is contained in:
Yuri Kuznetsov
2024-04-20 21:47:38 +03:00
parent ad0fbb577f
commit a07f6b032a
3 changed files with 22 additions and 2 deletions

View File

@@ -120,7 +120,16 @@ class SanitizeManager
/** @var class-string<Sanitizer>[] $fieldClassNameList */
$fieldClassNameList = $this->metadata->get("entityDefs.$entityType.fields.$field.sanitizerClassNameList") ?? [];
$ignoreList = $this->metadata->get("entityDefs.$entityType.fields.$field.sanitizerSuppressClassNameList") ?? [];
return array_merge($classNameList, $fieldClassNameList);
$list = array_merge($classNameList, $fieldClassNameList);
if ($ignoreList === []) {
return $list;
}
$list = array_diff($list, $ignoreList);
return array_values($list);
}
}

View File

@@ -48,7 +48,11 @@
},
"contents": {
"type": "text",
"notStorable": true
"notStorable": true,
"sanitizerClassNameList": [],
"sanitizerSuppressClassNameList": [
"Espo\\Classes\\FieldSanitizers\\EmptyStringToNull"
]
},
"role": {
"type": "enum",

View File

@@ -714,6 +714,13 @@
},
"description": "A list of sanitizers. Should implement Espo\\Core\\FieldSanitize\\Sanitizer."
},
"sanitizerSuppressClassNameList": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of sanitizers to be suppressed."
},
"inlineEditDisabled": {
"type": "boolean",
"default": "Disable inline edit."