summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJesse Hallam <jesse.hallam@gmail.com>2018-10-17 11:24:12 -0400
committerHarrison Healey <harrisonmhealey@gmail.com>2018-10-17 11:24:12 -0400
commit715097cc76510a3d78ba83e8544ee7c956ed26e9 (patch)
tree0b6d41e88bf75ad34c585d9db80f04cf8d780338 /app
parente8c9ccaa7e47f1cba3d2b126f6ebbb092fa43235 (diff)
downloadchat-715097cc76510a3d78ba83e8544ee7c956ed26e9.tar.gz
chat-715097cc76510a3d78ba83e8544ee7c956ed26e9.tar.bz2
chat-715097cc76510a3d78ba83e8544ee7c956ed26e9.zip
MM-12234: configurable limit to user autocomplete and search matches (#9499)
* unit test cleanup * allow limiting user search results * clean up test users before starting * model UserSearchOptions to simplify parameters
Diffstat (limited to 'app')
-rw-r--r--app/user.go58
1 files changed, 29 insertions, 29 deletions
diff --git a/app/user.go b/app/user.go
index e565fea76..b3fd3f5b9 100644
--- a/app/user.go
+++ b/app/user.go
@@ -1469,93 +1469,93 @@ func (a *App) VerifyUserEmail(userId string) *model.AppError {
return (<-a.Srv.Store.User().VerifyEmail(userId)).Err
}
-func (a *App) SearchUsers(props *model.UserSearch, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
+func (a *App) SearchUsers(props *model.UserSearch, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
if props.WithoutTeam {
- return a.SearchUsersWithoutTeam(props.Term, searchOptions, asAdmin)
+ return a.SearchUsersWithoutTeam(props.Term, options)
} else if props.InChannelId != "" {
- return a.SearchUsersInChannel(props.InChannelId, props.Term, searchOptions, asAdmin)
+ return a.SearchUsersInChannel(props.InChannelId, props.Term, options)
} else if props.NotInChannelId != "" {
- return a.SearchUsersNotInChannel(props.TeamId, props.NotInChannelId, props.Term, searchOptions, asAdmin)
+ return a.SearchUsersNotInChannel(props.TeamId, props.NotInChannelId, props.Term, options)
} else if props.NotInTeamId != "" {
- return a.SearchUsersNotInTeam(props.NotInTeamId, props.Term, searchOptions, asAdmin)
+ return a.SearchUsersNotInTeam(props.NotInTeamId, props.Term, options)
} else {
- return a.SearchUsersInTeam(props.TeamId, props.Term, searchOptions, asAdmin)
+ return a.SearchUsersInTeam(props.TeamId, props.Term, options)
}
}
-func (a *App) SearchUsersInChannel(channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
- if result := <-a.Srv.Store.User().SearchInChannel(channelId, term, searchOptions); result.Err != nil {
+func (a *App) SearchUsersInChannel(channelId string, term string, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
+ if result := <-a.Srv.Store.User().SearchInChannel(channelId, term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
return users, nil
}
}
-func (a *App) SearchUsersNotInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
- if result := <-a.Srv.Store.User().SearchNotInChannel(teamId, channelId, term, searchOptions); result.Err != nil {
+func (a *App) SearchUsersNotInChannel(teamId string, channelId string, term string, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
+ if result := <-a.Srv.Store.User().SearchNotInChannel(teamId, channelId, term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
return users, nil
}
}
-func (a *App) SearchUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
- if result := <-a.Srv.Store.User().Search(teamId, term, searchOptions); result.Err != nil {
+func (a *App) SearchUsersInTeam(teamId string, term string, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
+ if result := <-a.Srv.Store.User().Search(teamId, term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
return users, nil
}
}
-func (a *App) SearchUsersNotInTeam(notInTeamId string, term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
- if result := <-a.Srv.Store.User().SearchNotInTeam(notInTeamId, term, searchOptions); result.Err != nil {
+func (a *App) SearchUsersNotInTeam(notInTeamId string, term string, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
+ if result := <-a.Srv.Store.User().SearchNotInTeam(notInTeamId, term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
return users, nil
}
}
-func (a *App) SearchUsersWithoutTeam(term string, searchOptions map[string]bool, asAdmin bool) ([]*model.User, *model.AppError) {
- if result := <-a.Srv.Store.User().SearchWithoutTeam(term, searchOptions); result.Err != nil {
+func (a *App) SearchUsersWithoutTeam(term string, options *model.UserSearchOptions) ([]*model.User, *model.AppError) {
+ if result := <-a.Srv.Store.User().SearchWithoutTeam(term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
return users, nil
}
}
-func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInChannel, *model.AppError) {
- uchan := a.Srv.Store.User().SearchInChannel(channelId, term, searchOptions)
- nuchan := a.Srv.Store.User().SearchNotInChannel(teamId, channelId, term, searchOptions)
+func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term string, options *model.UserSearchOptions) (*model.UserAutocompleteInChannel, *model.AppError) {
+ uchan := a.Srv.Store.User().SearchInChannel(channelId, term, options)
+ nuchan := a.Srv.Store.User().SearchNotInChannel(teamId, channelId, term, options)
autocomplete := &model.UserAutocompleteInChannel{}
@@ -1565,7 +1565,7 @@ func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term s
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
autocomplete.InChannel = users
@@ -1577,7 +1577,7 @@ func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term s
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
autocomplete.OutOfChannel = users
@@ -1586,16 +1586,16 @@ func (a *App) AutocompleteUsersInChannel(teamId string, channelId string, term s
return autocomplete, nil
}
-func (a *App) AutocompleteUsersInTeam(teamId string, term string, searchOptions map[string]bool, asAdmin bool) (*model.UserAutocompleteInTeam, *model.AppError) {
+func (a *App) AutocompleteUsersInTeam(teamId string, term string, options *model.UserSearchOptions) (*model.UserAutocompleteInTeam, *model.AppError) {
autocomplete := &model.UserAutocompleteInTeam{}
- if result := <-a.Srv.Store.User().Search(teamId, term, searchOptions); result.Err != nil {
+ if result := <-a.Srv.Store.User().Search(teamId, term, options); result.Err != nil {
return nil, result.Err
} else {
users := result.Data.([]*model.User)
for _, user := range users {
- a.SanitizeProfile(user, asAdmin)
+ a.SanitizeProfile(user, options.IsAdmin)
}
autocomplete.InTeam = users