diff --git a/src/components/SearchContainer/SearchContainer.jsx b/src/components/SearchContainer/SearchContainer.jsx index f24f7ee49..f7f5e791d 100644 --- a/src/components/SearchContainer/SearchContainer.jsx +++ b/src/components/SearchContainer/SearchContainer.jsx @@ -2,6 +2,7 @@ import React, { Component } from 'react'; import GlyphiconSpan from '../GlyphiconSpan'; import Icon from '../Icon'; import TabContainer from './TabContainer'; +import {escapeRegExp} from 'utils'; export default class SearchContainer extends Component { constructor(props){ @@ -44,6 +45,7 @@ export default class SearchContainer extends Component { let sp = query.split(':'); let type = sp[0]; let term = sp[1]; + term = escapeRegExp(term); let t = '(?i).*' + term + '.*'; let labels = ["OU","GPO","User","Computer","Group","Domain"]; @@ -76,7 +78,8 @@ export default class SearchContainer extends Component { }.bind(this)); }else{ - let t = '(?i).*' + query + '.*'; + let q = escapeRegExp(query); + let t = '(?i).*' + q + '.*'; let data = []; session.run("MATCH (n) WHERE n.name =~ {name} OR n.guid =~ {name} RETURN n LIMIT 10", { name: t }) .then(function (results) { @@ -260,6 +263,7 @@ export default class SearchContainer extends Component { let sp = query.split(':'); let type = sp[0]; let term = sp[1]; + term = escapeRegExp(term); let t = '(?i).*' + term + '.*'; let labels = ["OU", "GPO", "User", "Computer", "Group", "Domain"]; @@ -292,7 +296,8 @@ export default class SearchContainer extends Component { }.bind(this)); } else { - let t = '(?i).*' + query + '.*'; + let q = escapeRegExp(query); + let t = '(?i).*' + q + '.*'; let data = []; session.run("MATCH (n) WHERE n.name =~ {name} OR n.guid =~ {name} RETURN n LIMIT 10", { name: t }) .then(function (results) { @@ -455,6 +460,8 @@ export default class SearchContainer extends Component { }); } + + _onPathfindClick(){ jQuery(this.refs.pathfinding).slideToggle(); var p = !this.state.pathfindingIsOpen; diff --git a/src/js/utils.js b/src/js/utils.js index 36a94df6c..84e97ee6b 100644 --- a/src/js/utils.js +++ b/src/js/utils.js @@ -658,4 +658,8 @@ export function buildACLProps(rows) { }); return datadict; -} \ No newline at end of file +} + +export function escapeRegExp(str) { + return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"); +}