From 1eab2ef39350c1035864918f366ab593d23e0f5a Mon Sep 17 00:00:00 2001 From: hmhealey Date: Tue, 9 Feb 2016 20:53:04 -0500 Subject: Stopped returning inactive members with getExtraInfo calls --- store/sql_channel_store.go | 31 +++++++++++++++++++++++++++++-- store/sql_channel_store_test.go | 12 ++++++++++++ 2 files changed, 41 insertions(+), 2 deletions(-) (limited to 'store') diff --git a/store/sql_channel_store.go b/store/sql_channel_store.go index 8b52dae12..87ee2bb11 100644 --- a/store/sql_channel_store.go +++ b/store/sql_channel_store.go @@ -615,9 +615,36 @@ func (s SqlChannelStore) GetExtraMembers(channelId string, limit int) StoreChann var err error if limit != -1 { - _, err = s.GetReplica().Select(&members, "SELECT Id, Nickname, Email, ChannelMembers.Roles, Username FROM ChannelMembers, Users WHERE ChannelMembers.UserId = Users.Id AND ChannelId = :ChannelId LIMIT :Limit", map[string]interface{}{"ChannelId": channelId, "Limit": limit}) + _, err = s.GetReplica().Select(&members, ` + SELECT + Id, + Nickname, + Email, + ChannelMembers.Roles, + Username + FROM + ChannelMembers, + Users + WHERE + ChannelMembers.UserId = Users.Id + AND Users.DeleteAt = 0 + AND ChannelId = :ChannelId + LIMIT :Limit`, map[string]interface{}{"ChannelId": channelId, "Limit": limit}) } else { - _, err = s.GetReplica().Select(&members, "SELECT Id, Nickname, Email, ChannelMembers.Roles, Username FROM ChannelMembers, Users WHERE ChannelMembers.UserId = Users.Id AND ChannelId = :ChannelId", map[string]interface{}{"ChannelId": channelId}) + _, err = s.GetReplica().Select(&members, ` + SELECT + Id, + Nickname, + Email, + ChannelMembers.Roles, + Username + FROM + ChannelMembers, + Users + WHERE + ChannelMembers.UserId = Users.Id + AND Users.DeleteAt = 0 + AND ChannelId = :ChannelId`, map[string]interface{}{"ChannelId": channelId}) } if err != nil { diff --git a/store/sql_channel_store_test.go b/store/sql_channel_store_test.go index a3b0c2286..816a85aef 100644 --- a/store/sql_channel_store_test.go +++ b/store/sql_channel_store_test.go @@ -377,6 +377,18 @@ func TestChannelMemberStore(t *testing.T) { if t4 != t3 { t.Fatal("Should not update time upon failure") } + + // rejoin the channel and make sure that an inactive user isn't returned by GetExtraMambers + Must(store.Channel().SaveMember(&o2)) + + u2.DeleteAt = 1000 + Must(store.User().Update(&u2, true)) + + if result := <-store.Channel().GetExtraMembers(o1.ChannelId, 20); result.Err != nil { + t.Fatal(result.Err) + } else if extraMembers := result.Data.([]model.ExtraMember); len(extraMembers) != 1 { + t.Fatal("should have 1 extra members") + } } func TestChannelDeleteMemberStore(t *testing.T) { -- cgit v1.2.3-1-g7c22