浏览代码

HUE-5213 [metadata] Protect against matching terms with regexp syntax in frontend

Romain Rigaux 9 年之前
父节点
当前提交
efe534d
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      desktop/core/src/desktop/templates/assist.mako

+ 1 - 1
desktop/core/src/desktop/templates/assist.mako

@@ -1936,7 +1936,7 @@ from metadata.conf import has_navigator
             query:  request.term,
             query:  request.term,
             successCallback: function (data) {
             successCallback: function (data) {
               var values = [];
               var values = [];
-              var facetPartialRe = new RegExp(partial, 'i');
+              var facetPartialRe = new RegExp(partial.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i'); // Protect for 'tags:*axe'
               if (isFacet && typeof data.facets !== 'undefined') { // Is typed facet, e.g. type: type:bla
               if (isFacet && typeof data.facets !== 'undefined') { // Is typed facet, e.g. type: type:bla
                 var facetInQuery = facetMatch[1];
                 var facetInQuery = facetMatch[1];
                 if (typeof data.facets[facetInQuery] !== 'undefined') {
                 if (typeof data.facets[facetInQuery] !== 'undefined') {