summaryrefslogtreecommitdiffstats
path: root/api/channel.go
diff options
context:
space:
mode:
authorHarrison Healey <harrisonmhealey@gmail.com>2016-06-06 13:03:56 -0400
committerHarrison Healey <harrisonmhealey@gmail.com>2016-06-06 13:03:56 -0400
commit384d0eb245e2aa325fdcfe2d8ee22a40c91af589 (patch)
treec61bbf3241625d766fa81fbebf7395db3ef3521d /api/channel.go
parent2c42294bbcab3cd5cfdce9604e5872fe4a12e538 (diff)
downloadchat-384d0eb245e2aa325fdcfe2d8ee22a40c91af589.tar.gz
chat-384d0eb245e2aa325fdcfe2d8ee22a40c91af589.tar.bz2
chat-384d0eb245e2aa325fdcfe2d8ee22a40c91af589.zip
PLT-2559 Always return successful when trying to join a channel that the user is already a member of (#3265)
* Added unit tests for SqlChannelStore.GetMember * Fixed api routes for accessing channels by name when the name includes an underscore * Changed join channel API to always return successful when the user is already a member of the channel
Diffstat (limited to 'api/channel.go')
-rw-r--r--api/channel.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/api/channel.go b/api/channel.go
index 6d1604900..e0428f311 100644
--- a/api/channel.go
+++ b/api/channel.go
@@ -476,6 +476,11 @@ func joinChannel(c *Context, channelChannel store.StoreChannel, userChannel stor
channel := cresult.Data.(*model.Channel)
user := uresult.Data.(*model.User)
+ if mresult := <-Srv.Store.Channel().GetMember(channel.Id, user.Id); mresult.Err == nil && mresult.Data != nil {
+ // the user is already in the channel so just return successful
+ return nil, channel
+ }
+
if !c.HasPermissionsToTeam(channel.TeamId, "join") {
return c.Err, nil
}