diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-04-28 11:04:13 -0400 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2017-04-28 08:04:13 -0700 |
commit | 36a15925dc4d10ac0c0a14ddbc60855aa5331519 (patch) | |
tree | 822669d2459f3d9ed5a94fe8fdfcd14dadab9cd9 | |
parent | 91f3e10854064d0cb58f9e8fa40527d8268c1675 (diff) | |
download | chat-36a15925dc4d10ac0c0a14ddbc60855aa5331519.tar.gz chat-36a15925dc4d10ac0c0a14ddbc60855aa5331519.tar.bz2 chat-36a15925dc4d10ac0c0a14ddbc60855aa5331519.zip |
Fix user autocomplete for DMs and GMs (#6265)
-rw-r--r-- | api4/user.go | 32 | ||||
-rw-r--r-- | api4/user_test.go | 6 |
2 files changed, 21 insertions, 17 deletions
diff --git a/api4/user.go b/api4/user.go index 18e549a64..1436808cd 100644 --- a/api4/user.go +++ b/api4/user.go @@ -468,25 +468,23 @@ func autocompleteUsers(c *Context, w http.ResponseWriter, r *http.Request) { searchOptions[store.USER_SEARCH_OPTION_NAMES_ONLY] = true } - if len(teamId) > 0 { - if len(channelId) > 0 { - if !app.SessionHasPermissionToChannel(c.Session, channelId, model.PERMISSION_READ_CHANNEL) { - c.SetPermissionError(model.PERMISSION_READ_CHANNEL) - return - } - - result, _ := app.AutocompleteUsersInChannel(teamId, channelId, name, searchOptions, c.IsSystemAdmin()) - autocomplete.Users = result.InChannel - autocomplete.OutOfChannel = result.OutOfChannel - } else { - if !app.SessionHasPermissionToTeam(c.Session, teamId, model.PERMISSION_VIEW_TEAM) { - c.SetPermissionError(model.PERMISSION_VIEW_TEAM) - return - } + if len(channelId) > 0 { + if !app.SessionHasPermissionToChannel(c.Session, channelId, model.PERMISSION_READ_CHANNEL) { + c.SetPermissionError(model.PERMISSION_READ_CHANNEL) + return + } - result, _ := app.AutocompleteUsersInTeam(teamId, name, searchOptions, c.IsSystemAdmin()) - autocomplete.Users = result.InTeam + result, _ := app.AutocompleteUsersInChannel(teamId, channelId, name, searchOptions, c.IsSystemAdmin()) + autocomplete.Users = result.InChannel + autocomplete.OutOfChannel = result.OutOfChannel + } else if len(teamId) > 0 { + if !app.SessionHasPermissionToTeam(c.Session, teamId, model.PERMISSION_VIEW_TEAM) { + c.SetPermissionError(model.PERMISSION_VIEW_TEAM) + return } + + result, _ := app.AutocompleteUsersInTeam(teamId, name, searchOptions, c.IsSystemAdmin()) + autocomplete.Users = result.InTeam } else { // No permission check required result, _ := app.SearchUsersInTeam("", name, searchOptions, c.IsSystemAdmin()) diff --git a/api4/user_test.go b/api4/user_test.go index 82949f913..d73aea292 100644 --- a/api4/user_test.go +++ b/api4/user_test.go @@ -507,6 +507,12 @@ func TestAutocompleteUsers(t *testing.T) { t.Fatal("should have many users") } + rusers, resp = Client.AutocompleteUsersInChannel("", channelId, "", "") + CheckNoError(t, resp) + if len(rusers.Users) < 2 { + t.Fatal("should have many users") + } + rusers, resp = Client.AutocompleteUsersInTeam(teamId, username, "") CheckNoError(t, resp) |