mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 11:28:24 +00:00 
			
		
		
		
	This PR changes the `opts` argument in `SearchUsers()` to be passed by value instead of by pointer, as its mutations do not escape the function scope and are not used elsewhere. This simplifies reasoning about the function and avoids unnecessary pointer usage. This insight emerged during an initial attempt to refactor `RenderUserSearch()`, which currently intermixes multiple concerns. Co-authored-by: Philip Peterson <philip-peterson@users.noreply.github.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			936 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			936 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2022 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package user
 | |
| 
 | |
| import (
 | |
| 	"net/http"
 | |
| 
 | |
| 	"code.gitea.io/gitea/models/db"
 | |
| 	user_model "code.gitea.io/gitea/models/user"
 | |
| 	"code.gitea.io/gitea/modules/optional"
 | |
| 	"code.gitea.io/gitea/modules/setting"
 | |
| 	"code.gitea.io/gitea/services/context"
 | |
| 	"code.gitea.io/gitea/services/convert"
 | |
| )
 | |
| 
 | |
| // SearchCandidates searches candidate users for dropdown list
 | |
| func SearchCandidates(ctx *context.Context) {
 | |
| 	users, _, err := user_model.SearchUsers(ctx, user_model.SearchUserOptions{
 | |
| 		Actor:       ctx.Doer,
 | |
| 		Keyword:     ctx.FormTrim("q"),
 | |
| 		Type:        user_model.UserTypeIndividual,
 | |
| 		IsActive:    optional.Some(true),
 | |
| 		ListOptions: db.ListOptions{PageSize: setting.UI.MembersPagingNum},
 | |
| 	})
 | |
| 	if err != nil {
 | |
| 		ctx.ServerError("Unable to search users", err)
 | |
| 		return
 | |
| 	}
 | |
| 	ctx.JSON(http.StatusOK, map[string]any{"data": convert.ToUsers(ctx, ctx.Doer, users)})
 | |
| }
 |