summaryrefslogtreecommitdiffstats
path: root/webapp/components
diff options
context:
space:
mode:
authorDavid Lu <david.lu@hotmail.com>2016-05-20 14:47:10 -0400
committerChristopher Speller <crspeller@gmail.com>2016-05-20 14:47:10 -0400
commite81fa3220de51350592e50b2fa3e0dc9425d43f8 (patch)
treecf9447ba5ab4440f1c641a9d95103ea91e76b873 /webapp/components
parent4f265522e1ac05ef2c10140019da73e1c4def162 (diff)
downloadchat-e81fa3220de51350592e50b2fa3e0dc9425d43f8.tar.gz
chat-e81fa3220de51350592e50b2fa3e0dc9425d43f8.tar.bz2
chat-e81fa3220de51350592e50b2fa3e0dc9425d43f8.zip
Added validation for command triggers (#3068)
Diffstat (limited to 'webapp/components')
-rw-r--r--webapp/components/backstage/add_command.jsx48
1 files changed, 47 insertions, 1 deletions
diff --git a/webapp/components/backstage/add_command.jsx b/webapp/components/backstage/add_command.jsx
index f3208bc5f..c817764aa 100644
--- a/webapp/components/backstage/add_command.jsx
+++ b/webapp/components/backstage/add_command.jsx
@@ -11,6 +11,7 @@ import {FormattedMessage} from 'react-intl';
import FormError from 'components/form_error.jsx';
import {browserHistory, Link} from 'react-router';
import SpinnerButton from 'components/spinner_button.jsx';
+import Constants from 'utils/constants.jsx';
const REQUEST_POST = 'P';
const REQUEST_GET = 'G';
@@ -92,6 +93,51 @@ export default class AddCommand extends React.Component {
return;
}
+ if (command.trigger.indexOf('/') === 0) {
+ this.setState({
+ saving: false,
+ clientError: (
+ <FormattedMessage
+ id='add_command.triggerInvalidSlash'
+ defaultMessage='A trigger word cannot begin with a /'
+ />
+ )
+ });
+
+ return;
+ }
+
+ if (command.trigger.indexOf(' ') !== -1) {
+ this.setState({
+ saving: false,
+ clientError: (
+ <FormattedMessage
+ id='add_command.triggerInvalidSpace'
+ defaultMessage='A trigger word must not contain spaces'
+ />
+ )
+ });
+ return;
+ }
+
+ if (command.trigger.length < Constants.MIN_TRIGGER_LENGTH || command.trigger.length > Constants.MAX_TRIGGER_LENGTH) {
+ this.setState({
+ saving: false,
+ clientError: (
+ <FormattedMessage
+ id='add_command.triggerInvalidLength'
+ defaultMessage='A trigger word must contain between {min} and {max} characters'
+ values={{
+ min: Constants.MIN_TRIGGER_LENGTH,
+ max: Constants.MAX_TRIGGER_LENGTH
+ }}
+ />
+ )
+ });
+
+ return;
+ }
+
if (!command.url) {
this.setState({
saving: false,
@@ -323,7 +369,7 @@ export default class AddCommand extends React.Component {
<input
id='trigger'
type='text'
- maxLength='128'
+ maxLength={Constants.MAX_TRIGGER_LENGTH}
className='form-control'
value={this.state.trigger}
onChange={this.updateTrigger}