Do not sanitize if sanitizer config is empty (#477)

This commit is contained in:
George Berezhnoy 2018-10-23 15:33:03 +03:00 committed by GitHub
parent 3f8c7fbb7b
commit 986708ed90
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 210 additions and 208 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{
"name": "codex.editor",
"version": "2.2.0",
"version": "2.2.1",
"description": "Codex Editor. Native JS, based on API and Open Source",
"main": "build/codex-editor.js",
"scripts": {

View file

@ -583,7 +583,9 @@ export default class Paste extends Module {
const sanitizeConfig = Sanitizer.composeToolConfig(tool);
blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);
if (!_.isEmpty(sanitizeConfig)) {
blockData.data = Sanitizer.deepSanitize(blockData.data, sanitizeConfig);
}
if (BlockManager.currentBlock && BlockManager.currentBlock.isEmpty) {
insertedBlock = BlockManager.replace(blockData.tool, blockData.data);

View file

@ -78,6 +78,10 @@ export default class Sanitizer extends Module {
return blocksData.map((block) => {
const toolConfig = this.composeToolConfig(block.tool);
if (_.isEmpty(toolConfig)) {
return block;
}
block.data = this.deepSanitize(block.data, toolConfig);
return block;
@ -154,16 +158,16 @@ export default class Sanitizer extends Module {
const sanitizeGetter = this.Editor.Tools.apiSettings.SANITIZE_CONFIG;
const toolClass = this.Editor.Tools.available[toolName];
const baseConfig = this.getInlineToolsConfig(toolName);
/**
* If Tools doesn't provide sanitizer config or it is empty
*/
if (!toolClass.sanitize || (toolClass[sanitizeGetter] && _.isEmpty(toolClass[sanitizeGetter]))) {
return {};
return baseConfig;
}
const toolRules = toolClass.sanitize;
const baseConfig = this.getInlineToolsConfig(toolName);
const toolConfig = {};
for (const fieldName in toolRules) {