summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--store/sql_channel_store.go31
-rw-r--r--store/sql_channel_store_test.go12
-rw-r--r--web/react/components/popover_list_members.jsx2
-rw-r--r--web/react/components/user_settings/user_settings_modal.jsx5
4 files changed, 46 insertions, 4 deletions
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) {
diff --git a/web/react/components/popover_list_members.jsx b/web/react/components/popover_list_members.jsx
index f217229ed..afff78bae 100644
--- a/web/react/components/popover_list_members.jsx
+++ b/web/react/components/popover_list_members.jsx
@@ -107,7 +107,7 @@ export default class PopoverListMembers extends React.Component {
name = Utils.displayUsername(teamMembers[m.username].id);
}
- if (name && teamMembers[m.username].delete_at <= 0) {
+ if (name) {
popoverHtml.push(
<div
className='text-nowrap'
diff --git a/web/react/components/user_settings/user_settings_modal.jsx b/web/react/components/user_settings/user_settings_modal.jsx
index a7541073e..7e911f09a 100644
--- a/web/react/components/user_settings/user_settings_modal.jsx
+++ b/web/react/components/user_settings/user_settings_modal.jsx
@@ -7,6 +7,7 @@ import SettingsSidebar from '../settings_sidebar.jsx';
import UserStore from '../../stores/user_store.jsx';
import * as Utils from '../../utils/utils.jsx';
+import Constants from '../../utils/constants.jsx';
const Modal = ReactBootstrap.Modal;
@@ -224,7 +225,9 @@ class UserSettingsModal extends React.Component {
resetTheme() {
const user = UserStore.getCurrentUser();
- if (user.theme_props != null) {
+ if (user.theme_props == null) {
+ Utils.applyTheme(Constants.THEMES.default);
+ } else {
Utils.applyTheme(user.theme_props);
}
}