From c9459feb59a3dc05de229aea7652b0a726ac98bf Mon Sep 17 00:00:00 2001 From: nickago Date: Mon, 13 Jul 2015 13:18:50 -0700 Subject: When removed from a channel, user is sent back to town square and that channel is removed from their sidebar --- api/channel.go | 4 ++++ model/message.go | 1 + web/react/components/sidebar.jsx | 8 ++++++++ 3 files changed, 13 insertions(+) diff --git a/api/channel.go b/api/channel.go index 4d8dbad09..a05aa0a3c 100644 --- a/api/channel.go +++ b/api/channel.go @@ -710,6 +710,10 @@ func removeChannelMember(c *Context, w http.ResponseWriter, r *http.Request) { return } + message := model.NewMessage(c.Session.TeamId, "", userId, model.ACTION_USER_REMOVED) + message.Add("channel_id",id) + PublishAndForget(message) + c.LogAudit("name=" + channel.Name + " user_id=" + userId) result := make(map[string]string) diff --git a/model/message.go b/model/message.go index 52ee69e8f..ec4817b2a 100644 --- a/model/message.go +++ b/model/message.go @@ -16,6 +16,7 @@ const ( ACTION_VIEWED = "viewed" ACTION_NEW_USER = "new_user" ACTION_USER_ADDED = "user_added" + ACTION_USER_REMOVED = "user_removed" ) type Message struct { diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx index 3cf67e410..ed75e51cf 100644 --- a/web/react/components/sidebar.jsx +++ b/web/react/components/sidebar.jsx @@ -197,6 +197,14 @@ module.exports = React.createClass({ if (UserStore.getCurrentId() === msg.user_id) { AsyncClient.getChannels(true); } + } else if(msg.action === "user_removed") { + if(msg.user_id === UserStore.getCurrentId()) { + AsyncClient.getChannels(true); + + if(msg.props.channel_id === ChannelStore.getCurrentId()) { + window.location.reload(); + } + } } }, updateTitle: function() { -- cgit v1.2.3-1-g7c22