From 7babccfa511995708ac3eab1efeb5f2bfcf7455e Mon Sep 17 00:00:00 2001 From: it33 Date: Wed, 11 May 2016 11:08:38 -0700 Subject: Propose changing "Other teams" to "Outside this team" (#2969) * Update sidebar.jsx * Added "Outside this team" --- webapp/components/sidebar.jsx | 2 +- webapp/i18n/en.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'webapp') diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index 3bfe47393..a03e3e215 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -514,7 +514,7 @@ export default class Sidebar extends React.Component {
); diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index b622c9ab1..cfa4d9e25 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -1130,7 +1130,7 @@ "sidebar.direct": "Direct Messages", "sidebar.more": "More", "sidebar.moreElips": "More...", - "sidebar.otherMembers": "Other teams", + "sidebar.otherMembers": "Outside this team", "sidebar.pg": "Private Groups", "sidebar.removeList": "Remove from list", "sidebar.tutorialScreen1": "

Channels

Channels organize conversations across different topics. They’re open to everyone on your team. To send private communications use Direct Messages for a single person or Private Groups for multiple people.

", -- cgit v1.2.3-1-g7c22 From 04f7273461a130e93f19af935df673016ab1dbc7 Mon Sep 17 00:00:00 2001 From: Asaad Mahmood Date: Thu, 12 May 2016 00:30:00 +0500 Subject: Improving compliance stuff (#2963) * Improving compliance stuff * Fixing padding on mobile --- webapp/components/admin_console/audits.jsx | 27 +-- .../admin_console/compliance_reports.jsx | 195 +++++++++++---------- webapp/i18n/en.json | 18 +- webapp/sass/responsive/_mobile.scss | 9 + webapp/sass/routes/_admin-console.scss | 11 -- webapp/sass/routes/_compliance.scss | 38 ++++ webapp/sass/routes/_module.scss | 1 + 7 files changed, 169 insertions(+), 130 deletions(-) create mode 100644 webapp/sass/routes/_compliance.scss (limited to 'webapp') diff --git a/webapp/components/admin_console/audits.jsx b/webapp/components/admin_console/audits.jsx index 1f94de7da..cb500f29c 100644 --- a/webapp/components/admin_console/audits.jsx +++ b/webapp/components/admin_console/audits.jsx @@ -75,24 +75,25 @@ export default class Audits extends React.Component {
-
+

+

- -
+
{content}
diff --git a/webapp/components/admin_console/compliance_reports.jsx b/webapp/components/admin_console/compliance_reports.jsx index 04b2c4deb..79b0d2210 100644 --- a/webapp/components/admin_console/compliance_reports.jsx +++ b/webapp/components/admin_console/compliance_reports.jsx @@ -266,7 +266,7 @@ export default class ComplianceReports extends React.Component { } return ( -
+

- - - - - - - - - - - - - -
- - -
- - - - - - - - - - - - - -
- {serverError} -
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+
+
+ {serverError} +
+
-
+
{content}
diff --git a/webapp/i18n/en.json b/webapp/i18n/en.json index cfa4d9e25..7e46903db 100644 --- a/webapp/i18n/en.json +++ b/webapp/i18n/en.json @@ -75,8 +75,8 @@ "add_outgoing_webhook.triggerWOrds": "Trigger Words (One Per Line)", "add_outgoing_webhook.triggerWords": "Trigger Words (One Per Line)", "add_outgoing_webhook.triggerWordsOrChannelRequired": "A valid channel or a list of trigger words is required", - "admin.audits.reload": "Reload", - "admin.audits.title": "User Activity", + "admin.audits.reload": "Reload User Activity Logs", + "admin.audits.title": "User Activity Logs", "admin.compliance.directoryDescription": "Directory to which compliance reports are written. If blank, will be set to ./data/.", "admin.compliance.directoryExample": "Ex \"./data/\"", "admin.compliance.directoryTitle": "Compliance Directory Location:", @@ -91,18 +91,18 @@ "admin.compliance.title": "Compliance Settings", "admin.compliance.true": "true", "admin.compliance_reports.desc": "Job Name:", - "admin.compliance_reports.desc_placeholder": "Ex \"Audit 445 for HR\"", + "admin.compliance_reports.desc_placeholder": "E.g. \"Audit 445 for HR\"", "admin.compliance_reports.emails": "Emails:", - "admin.compliance_reports.emails_placeholder": "Ex \"bill@example.com, bob@example.com\"", + "admin.compliance_reports.emails_placeholder": "E.g. \"bill@example.com, bob@example.com\"", "admin.compliance_reports.from": "From:", - "admin.compliance_reports.from_placeholder": "Ex \"2016-03-11\"", + "admin.compliance_reports.from_placeholder": "E.g. \"2016-03-11\"", "admin.compliance_reports.keywords": "Keywords:", - "admin.compliance_reports.keywords_placeholder": "Ex \"shorting stock\"", - "admin.compliance_reports.reload": "Reload", - "admin.compliance_reports.run": "Run", + "admin.compliance_reports.keywords_placeholder": "E.g. \"shorting stock\"", + "admin.compliance_reports.reload": "Reload Completed Compliance Reports", + "admin.compliance_reports.run": "Run Compliance Report", "admin.compliance_reports.title": "Compliance Reports", "admin.compliance_reports.to": "To:", - "admin.compliance_reports.to_placeholder": "Ex \"2016-03-15\"", + "admin.compliance_reports.to_placeholder": "E.g. \"2016-03-15\"", "admin.compliance_table.desc": "Description", "admin.compliance_table.download": "Download", "admin.compliance_table.params": "Params", diff --git a/webapp/sass/responsive/_mobile.scss b/webapp/sass/responsive/_mobile.scss index 3a4cd3b89..cc3d7a4b9 100644 --- a/webapp/sass/responsive/_mobile.scss +++ b/webapp/sass/responsive/_mobile.scss @@ -11,6 +11,15 @@ } } + .compliance-panel, + .audit-panel { + .row { + > .form-group { + padding-left: 15px; + } + } + } + .user-popover { pointer-events: none; } diff --git a/webapp/sass/routes/_admin-console.scss b/webapp/sass/routes/_admin-console.scss index 65fefdb33..0f47e7529 100644 --- a/webapp/sass/routes/_admin-console.scss +++ b/webapp/sass/routes/_admin-console.scss @@ -160,17 +160,6 @@ width: 100%; } - .compliance__panel, - .audit__panel { - background-color: $white; - border: 1px solid $border-gray; - height: 70vh; - margin-top: 10px; - overflow: auto; - padding: 5px; - width: 100%; - } - .app__content { color: #333; diff --git a/webapp/sass/routes/_compliance.scss b/webapp/sass/routes/_compliance.scss new file mode 100644 index 000000000..57eb538c6 --- /dev/null +++ b/webapp/sass/routes/_compliance.scss @@ -0,0 +1,38 @@ +@charset 'UTF-8'; + +.compliance-panel__table, +.audit-panel__table { + background-color: $white; + border: 1px solid $border-gray; + margin-top: 10px; + max-height: 70vh; + min-height: 100px; + overflow: auto; + padding: 5px; + width: 100%; +} + +.compliance-panel, +.audit-panel { + .row { + > .form-group { + padding-left: 0; + + &:first-child { + padding-left: 15px; + } + } + + label { + font-weight: 600; + } + } + + .fa-refresh { + margin-right: 5px; + } +} + +.compliance-panel { + margin-bottom: 3em; +} diff --git a/webapp/sass/routes/_module.scss b/webapp/sass/routes/_module.scss index 4f3f6f9cd..11b815007 100644 --- a/webapp/sass/routes/_module.scss +++ b/webapp/sass/routes/_module.scss @@ -4,6 +4,7 @@ @import 'activity-log'; @import 'admin-console'; @import 'backstage'; +@import 'compliance'; @import 'docs'; @import 'error-page'; @import 'loading'; -- cgit v1.2.3-1-g7c22 From 0fa51b764d87372f7ba0112282558714e60a7664 Mon Sep 17 00:00:00 2001 From: enahum Date: Thu, 12 May 2016 09:31:08 -0300 Subject: Add missing locs (#2971) --- webapp/components/sidebar.jsx | 2 +- webapp/i18n/es.json | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'webapp') diff --git a/webapp/components/sidebar.jsx b/webapp/components/sidebar.jsx index a03e3e215..a4d85f4ff 100644 --- a/webapp/components/sidebar.jsx +++ b/webapp/components/sidebar.jsx @@ -514,7 +514,7 @@ export default class Sidebar extends React.Component {
); diff --git a/webapp/i18n/es.json b/webapp/i18n/es.json index ce29d234b..7aa3071f6 100644 --- a/webapp/i18n/es.json +++ b/webapp/i18n/es.json @@ -1130,7 +1130,7 @@ "sidebar.direct": "Mensajes Directos", "sidebar.more": "Más", "sidebar.moreElips": "Más...", - "sidebar.otherMembers": "Otros equipos", + "sidebar.otherMembers": "Fuera de este equipo", "sidebar.pg": "Grupos Privados", "sidebar.removeList": "Remover de la lista", "sidebar.tutorialScreen1": "

Canales

Canales organizan las conversaciones en diferentes tópicos. Son abiertos para cualquier persona de tu equipo. Para enviar comunicaciones privadas con una sola persona utiliza Mensajes Directos o con multiples personas utilizando Grupos Privados.

", @@ -1341,7 +1341,9 @@ "user.settings.general.title": "Configuración General", "user.settings.general.uploadImage": "Pinchar 'Editar' para subir una imagen.", "user.settings.general.username": "Nombre de usuario", + "user.settings.general.usernameInfo": "Escoge algo que sea fácil de reconocer y recordar para tus compañeros.", "user.settings.general.usernameReserved": "Este nombre de usuario está reservado, por favor escoge otro", + "user.settings.general.usernameRestrictions": "El nombre de usuario debe comenzar con una letra y debe contener entre {min} y {max} caracteres en minúscula creado con numeros, letras y los símbolos '.', '-', y '_'.", "user.settings.general.validEmail": "Por favor ingresa una dirección de correo electrónico válida", "user.settings.general.validImage": "Sólo pueden ser utilizadas imágenes JPG o PNG en el perfil", "user.settings.import_theme.cancel": "Cancelar", -- cgit v1.2.3-1-g7c22 From 82e6cf785c13443f3496941c3ef884506420c735 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Thu, 12 May 2016 09:49:40 -0400 Subject: Fix incorrect password error with MFA enabled (#2977) --- webapp/components/login/login.jsx | 1 + 1 file changed, 1 insertion(+) (limited to 'webapp') diff --git a/webapp/components/login/login.jsx b/webapp/components/login/login.jsx index 0a12ed645..60d25a2ca 100644 --- a/webapp/components/login/login.jsx +++ b/webapp/components/login/login.jsx @@ -98,6 +98,7 @@ export default class Login extends React.Component { }); } else if (err.id === 'api.user.check_user_password.invalid.app_error' || err.id === 'ent.ldap.do_login.invalid_password.app_error') { this.setState({ + showMfa: false, serverError: ( Date: Thu, 12 May 2016 11:30:53 -0400 Subject: PLT-2927/PLT-2924 Fixing issues with integration lists (#2974) * Changed IntegrationStore to store integrations by team * Fixed regenerating a command's token not causing the UI to update * Re-added IntegrationStore.hasReceived methods --- webapp/client/client.jsx | 2 +- webapp/components/backstage/installed_commands.jsx | 15 ++- .../backstage/installed_incoming_webhooks.jsx | 15 ++- .../backstage/installed_outgoing_webhooks.jsx | 15 ++- webapp/stores/integration_store.jsx | 142 ++++++++++++--------- webapp/utils/async_client.jsx | 6 + 6 files changed, 116 insertions(+), 79 deletions(-) (limited to 'webapp') diff --git a/webapp/client/client.jsx b/webapp/client/client.jsx index 12cf21f5c..3ee7b1de9 100644 --- a/webapp/client/client.jsx +++ b/webapp/client/client.jsx @@ -1203,7 +1203,7 @@ export default class Client { end(this.handleResponse.bind(this, 'listTeamCommands', success, error)); } - regenCommandToken = (commandId, suggest, success, error) => { + regenCommandToken = (commandId, success, error) => { request. post(`${this.getCommandsRoute()}/regen_token`). set(this.defaultHeaders). diff --git a/webapp/components/backstage/installed_commands.jsx b/webapp/components/backstage/installed_commands.jsx index 71373e077..df1f56687 100644 --- a/webapp/components/backstage/installed_commands.jsx +++ b/webapp/components/backstage/installed_commands.jsx @@ -5,6 +5,7 @@ import React from 'react'; import * as AsyncClient from 'utils/async_client.jsx'; import IntegrationStore from 'stores/integration_store.jsx'; +import TeamStore from 'stores/team_store.jsx'; import * as Utils from 'utils/utils.jsx'; import {FormattedMessage} from 'react-intl'; @@ -20,16 +21,18 @@ export default class InstalledCommands extends React.Component { this.regenCommandToken = this.regenCommandToken.bind(this); this.deleteCommand = this.deleteCommand.bind(this); + const teamId = TeamStore.getCurrentId(); + this.state = { - commands: IntegrationStore.getCommands(), - loading: !IntegrationStore.hasReceivedCommands() + commands: IntegrationStore.getCommands(teamId), + loading: !IntegrationStore.hasReceivedCommands(teamId) }; } componentDidMount() { IntegrationStore.addChangeListener(this.handleIntegrationChange); - if (window.mm_config.EnableCommands === 'true' && this.state.loading) { + if (window.mm_config.EnableCommands === 'true') { AsyncClient.listTeamCommands(); } } @@ -39,9 +42,11 @@ export default class InstalledCommands extends React.Component { } handleIntegrationChange() { + const teamId = TeamStore.getCurrentId(); + this.setState({ - commands: IntegrationStore.getCommands(), - loading: !IntegrationStore.hasReceivedCommands() + commands: IntegrationStore.getCommands(teamId), + loading: !IntegrationStore.hasReceivedCommands(teamId) }); } diff --git a/webapp/components/backstage/installed_incoming_webhooks.jsx b/webapp/components/backstage/installed_incoming_webhooks.jsx index 389f65919..0a38a6ab5 100644 --- a/webapp/components/backstage/installed_incoming_webhooks.jsx +++ b/webapp/components/backstage/installed_incoming_webhooks.jsx @@ -5,6 +5,7 @@ import React from 'react'; import * as AsyncClient from 'utils/async_client.jsx'; import IntegrationStore from 'stores/integration_store.jsx'; +import TeamStore from 'stores/team_store.jsx'; import * as Utils from 'utils/utils.jsx'; import {FormattedMessage} from 'react-intl'; @@ -19,16 +20,18 @@ export default class InstalledIncomingWebhooks extends React.Component { this.deleteIncomingWebhook = this.deleteIncomingWebhook.bind(this); + const teamId = TeamStore.getCurrentId(); + this.state = { - incomingWebhooks: IntegrationStore.getIncomingWebhooks(), - loading: !IntegrationStore.hasReceivedIncomingWebhooks() + incomingWebhooks: IntegrationStore.getIncomingWebhooks(teamId), + loading: !IntegrationStore.hasReceivedIncomingWebhooks(teamId) }; } componentDidMount() { IntegrationStore.addChangeListener(this.handleIntegrationChange); - if (window.mm_config.EnableIncomingWebhooks === 'true' && this.state.loading) { + if (window.mm_config.EnableIncomingWebhooks === 'true') { AsyncClient.listIncomingHooks(); } } @@ -38,9 +41,11 @@ export default class InstalledIncomingWebhooks extends React.Component { } handleIntegrationChange() { + const teamId = TeamStore.getCurrentId(); + this.setState({ - incomingWebhooks: IntegrationStore.getIncomingWebhooks(), - loading: !IntegrationStore.hasReceivedIncomingWebhooks() + incomingWebhooks: IntegrationStore.getIncomingWebhooks(teamId), + loading: !IntegrationStore.hasReceivedIncomingWebhooks(teamId) }); } diff --git a/webapp/components/backstage/installed_outgoing_webhooks.jsx b/webapp/components/backstage/installed_outgoing_webhooks.jsx index e0817fda8..b79bc3530 100644 --- a/webapp/components/backstage/installed_outgoing_webhooks.jsx +++ b/webapp/components/backstage/installed_outgoing_webhooks.jsx @@ -5,6 +5,7 @@ import React from 'react'; import * as AsyncClient from 'utils/async_client.jsx'; import IntegrationStore from 'stores/integration_store.jsx'; +import TeamStore from 'stores/team_store.jsx'; import * as Utils from 'utils/utils.jsx'; import {FormattedMessage} from 'react-intl'; @@ -20,16 +21,18 @@ export default class InstalledOutgoingWebhooks extends React.Component { this.regenOutgoingWebhookToken = this.regenOutgoingWebhookToken.bind(this); this.deleteOutgoingWebhook = this.deleteOutgoingWebhook.bind(this); + const teamId = TeamStore.getCurrentId(); + this.state = { - outgoingWebhooks: IntegrationStore.getOutgoingWebhooks(), - loading: !IntegrationStore.hasReceivedOutgoingWebhooks() + outgoingWebhooks: IntegrationStore.getOutgoingWebhooks(teamId), + loading: !IntegrationStore.hasReceivedOutgoingWebhooks(teamId) }; } componentDidMount() { IntegrationStore.addChangeListener(this.handleIntegrationChange); - if (window.mm_config.EnableOutgoingWebhooks === 'true' && this.state.loading) { + if (window.mm_config.EnableOutgoingWebhooks === 'true') { AsyncClient.listOutgoingHooks(); } } @@ -39,9 +42,11 @@ export default class InstalledOutgoingWebhooks extends React.Component { } handleIntegrationChange() { + const teamId = TeamStore.getCurrentId(); + this.setState({ - outgoingWebhooks: IntegrationStore.getOutgoingWebhooks(), - loading: !IntegrationStore.hasReceivedOutgoingWebhooks() + outgoingWebhooks: IntegrationStore.getOutgoingWebhooks(teamId), + loading: !IntegrationStore.hasReceivedOutgoingWebhooks(teamId) }); } diff --git a/webapp/stores/integration_store.jsx b/webapp/stores/integration_store.jsx index 12cbc3407..454e6290b 100644 --- a/webapp/stores/integration_store.jsx +++ b/webapp/stores/integration_store.jsx @@ -15,14 +15,11 @@ class IntegrationStore extends EventEmitter { this.dispatchToken = AppDispatcher.register(this.handleEventPayload.bind(this)); - this.incomingWebhooks = []; - this.receivedIncomingWebhooks = false; + this.incomingWebhooks = new Map(); - this.outgoingWebhooks = []; - this.receivedOutgoingWebhooks = false; + this.outgoingWebhooks = new Map(); - this.commands = []; - this.receivedCommands = false; + this.commands = new Map(); } addChangeListener(callback) { @@ -37,100 +34,119 @@ class IntegrationStore extends EventEmitter { this.emit(CHANGE_EVENT); } - hasReceivedIncomingWebhooks() { - return this.receivedIncomingWebhooks; + hasReceivedIncomingWebhooks(teamId) { + return this.incomingWebhooks.has(teamId); } - getIncomingWebhooks() { - return this.incomingWebhooks; + getIncomingWebhooks(teamId) { + return this.incomingWebhooks.get(teamId) || []; } - setIncomingWebhooks(incomingWebhooks) { - this.incomingWebhooks = incomingWebhooks; - this.receivedIncomingWebhooks = true; + setIncomingWebhooks(teamId, incomingWebhooks) { + this.incomingWebhooks.set(teamId, incomingWebhooks); } addIncomingWebhook(incomingWebhook) { - this.incomingWebhooks.push(incomingWebhook); + const teamId = incomingWebhook.team_id; + const incomingWebhooks = this.getIncomingWebhooks(teamId); + + incomingWebhooks.push(incomingWebhook); + + this.setIncomingWebhooks(teamId, incomingWebhooks); } - removeIncomingWebhook(id) { - for (let i = 0; i < this.incomingWebhooks.length; i++) { - if (this.incomingWebhooks[i].id === id) { - this.incomingWebhooks.splice(i, 1); - break; - } - } + removeIncomingWebhook(teamId, id) { + let incomingWebhooks = this.getIncomingWebhooks(teamId); + + incomingWebhooks = incomingWebhooks.filter((incomingWebhook) => incomingWebhook.id !== id); + + this.setIncomingWebhooks(teamId, incomingWebhooks); } - hasReceivedOutgoingWebhooks() { - return this.receivedOutgoingWebhooks; + hasReceivedOutgoingWebhooks(teamId) { + return this.outgoingWebhooks.has(teamId); } - getOutgoingWebhooks() { - return this.outgoingWebhooks; + getOutgoingWebhooks(teamId) { + return this.outgoingWebhooks.get(teamId) || []; } - setOutgoingWebhooks(outgoingWebhooks) { - this.outgoingWebhooks = outgoingWebhooks; - this.receivedOutgoingWebhooks = true; + setOutgoingWebhooks(teamId, outgoingWebhooks) { + this.outgoingWebhooks.set(teamId, outgoingWebhooks); } addOutgoingWebhook(outgoingWebhook) { - this.outgoingWebhooks.push(outgoingWebhook); + const teamId = outgoingWebhook.team_id; + const outgoingWebhooks = this.getOutgoingWebhooks(teamId); + + outgoingWebhooks.push(outgoingWebhook); + + this.setOutgoingWebhooks(teamId, outgoingWebhooks); } updateOutgoingWebhook(outgoingWebhook) { - for (let i = 0; i < this.outgoingWebhooks.length; i++) { - if (this.outgoingWebhooks[i].id === outgoingWebhook.id) { - this.outgoingWebhooks[i] = outgoingWebhook; + const teamId = outgoingWebhook.team_id; + const outgoingWebhooks = this.getOutgoingWebhooks(teamId); + + for (let i = 0; i < outgoingWebhooks.length; i++) { + if (outgoingWebhooks[i].id === outgoingWebhook.id) { + outgoingWebhooks[i] = outgoingWebhook; break; } } + + this.setOutgoingWebhooks(teamId, outgoingWebhooks); } - removeOutgoingWebhook(id) { - for (let i = 0; i < this.outgoingWebhooks.length; i++) { - if (this.outgoingWebhooks[i].id === id) { - this.outgoingWebhooks.splice(i, 1); - break; - } - } + removeOutgoingWebhook(teamId, id) { + let outgoingWebhooks = this.getOutgoingWebhooks(teamId); + + outgoingWebhooks = outgoingWebhooks.filter((outgoingWebhook) => outgoingWebhook.id !== id); + + this.setOutgoingWebhooks(teamId, outgoingWebhooks); } - hasReceivedCommands() { - return this.receivedCommands; + hasReceivedCommands(teamId) { + return this.commands.has(teamId); } - getCommands() { - return this.commands; + getCommands(teamId) { + return this.commands.get(teamId) || []; } - setCommands(commands) { - this.commands = commands; - this.receivedCommands = true; + setCommands(teamId, commands) { + this.commands.set(teamId, commands); } addCommand(command) { - this.commands.push(command); + const teamId = command.team_id; + const commands = this.getCommands(teamId); + + commands.push(command); + + this.setCommands(teamId, commands); } updateCommand(command) { - for (let i = 0; i < this.commands.length; i++) { - if (this.commands[i].id === command.id) { - this.commands[i] = command; + const teamId = command.team_id; + const commands = this.getCommands(teamId); + + for (let i = 0; i < commands.length; i++) { + if (commands[i].id === command.id) { + commands[i] = command; break; } } + + this.setCommands(teamId, commands); } - removeCommand(id) { - for (let i = 0; i < this.commands.length; i++) { - if (this.commands[i].id === id) { - this.commands.splice(i, 1); - break; - } - } + removeCommand(teamId, id) { + let commands = this.getCommands(teamId); + + commands = commands.filter((command) => command.id !== id); + + this.setCommands(teamId, commands); } handleEventPayload(payload) { @@ -138,7 +154,7 @@ class IntegrationStore extends EventEmitter { switch (action.type) { case ActionTypes.RECEIVED_INCOMING_WEBHOOKS: - this.setIncomingWebhooks(action.incomingWebhooks); + this.setIncomingWebhooks(action.teamId, action.incomingWebhooks); this.emitChange(); break; case ActionTypes.RECEIVED_INCOMING_WEBHOOK: @@ -146,11 +162,11 @@ class IntegrationStore extends EventEmitter { this.emitChange(); break; case ActionTypes.REMOVED_INCOMING_WEBHOOK: - this.removeIncomingWebhook(action.id); + this.removeIncomingWebhook(action.teamId, action.id); this.emitChange(); break; case ActionTypes.RECEIVED_OUTGOING_WEBHOOKS: - this.setOutgoingWebhooks(action.outgoingWebhooks); + this.setOutgoingWebhooks(action.teamId, action.outgoingWebhooks); this.emitChange(); break; case ActionTypes.RECEIVED_OUTGOING_WEBHOOK: @@ -162,11 +178,11 @@ class IntegrationStore extends EventEmitter { this.emitChange(); break; case ActionTypes.REMOVED_OUTGOING_WEBHOOK: - this.removeOutgoingWebhook(action.id); + this.removeOutgoingWebhook(action.teamId, action.id); this.emitChange(); break; case ActionTypes.RECEIVED_COMMANDS: - this.setCommands(action.commands); + this.setCommands(action.teamId, action.commands); this.emitChange(); break; case ActionTypes.RECEIVED_COMMAND: @@ -178,7 +194,7 @@ class IntegrationStore extends EventEmitter { this.emitChange(); break; case ActionTypes.REMOVED_COMMAND: - this.removeCommand(action.id); + this.removeCommand(action.teamId, action.id); this.emitChange(); break; } diff --git a/webapp/utils/async_client.jsx b/webapp/utils/async_client.jsx index a562964b1..6535c024d 100644 --- a/webapp/utils/async_client.jsx +++ b/webapp/utils/async_client.jsx @@ -1145,6 +1145,7 @@ export function listIncomingHooks() { AppDispatcher.handleServerAction({ type: ActionTypes.RECEIVED_INCOMING_WEBHOOKS, + teamId: Client.teamId, incomingWebhooks: data }); }, @@ -1168,6 +1169,7 @@ export function listOutgoingHooks() { AppDispatcher.handleServerAction({ type: ActionTypes.RECEIVED_OUTGOING_WEBHOOKS, + teamId: Client.teamId, outgoingWebhooks: data }); }, @@ -1230,6 +1232,7 @@ export function deleteIncomingHook(id) { () => { AppDispatcher.handleServerAction({ type: ActionTypes.REMOVED_INCOMING_WEBHOOK, + teamId: Client.teamId, id }); }, @@ -1245,6 +1248,7 @@ export function deleteOutgoingHook(id) { () => { AppDispatcher.handleServerAction({ type: ActionTypes.REMOVED_OUTGOING_WEBHOOK, + teamId: Client.teamId, id }); }, @@ -1282,6 +1286,7 @@ export function listTeamCommands() { AppDispatcher.handleServerAction({ type: ActionTypes.RECEIVED_COMMANDS, + teamId: Client.teamId, commands: data }); }, @@ -1321,6 +1326,7 @@ export function deleteCommand(id) { () => { AppDispatcher.handleServerAction({ type: ActionTypes.REMOVED_COMMAND, + teamId: Client.teamId, id }); }, -- cgit v1.2.3-1-g7c22 From 9a701b7e5b31ca803a2d92f0b3b1d7cc68bf3c37 Mon Sep 17 00:00:00 2001 From: Harrison Healey Date: Thu, 12 May 2016 12:06:36 -0400 Subject: Stopped supressing LDAP user filtered error on clientside (#2981) --- webapp/components/login/login.jsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'webapp') diff --git a/webapp/components/login/login.jsx b/webapp/components/login/login.jsx index 60d25a2ca..8ae3fdd4d 100644 --- a/webapp/components/login/login.jsx +++ b/webapp/components/login/login.jsx @@ -85,8 +85,7 @@ export default class Login extends React.Component { browserHistory.push('/should_verify_email?&email=' + encodeURIComponent(loginId)); return; } else if (err.id === 'store.sql_user.get_for_login.app_error' || - err.id === 'ent.ldap.do_login.user_not_registered.app_error' || - err.id === 'ent.ldap.do_login.user_filtered.app_error') { + err.id === 'ent.ldap.do_login.user_not_registered.app_error') { this.setState({ showMfa: false, serverError: ( -- cgit v1.2.3-1-g7c22