Enable admin to search by email (#2888)
This commit is contained in:
		
							parent
							
								
									061c501d54
								
							
						
					
					
						commit
						716ac1214f
					
				
					 2 changed files with 16 additions and 10 deletions
				
			
		|  | @ -1271,22 +1271,27 @@ func GetUser(user *User) (bool, error) { | |||
| 
 | ||||
| // SearchUserOptions contains the options for searching
 | ||||
| type SearchUserOptions struct { | ||||
| 	Keyword  string | ||||
| 	Type     UserType | ||||
| 	OrderBy  string | ||||
| 	Page     int | ||||
| 	PageSize int // Can be smaller than or equal to setting.UI.ExplorePagingNum
 | ||||
| 	IsActive util.OptionalBool | ||||
| 	Keyword       string | ||||
| 	Type          UserType | ||||
| 	OrderBy       string | ||||
| 	Page          int | ||||
| 	PageSize      int // Can be smaller than or equal to setting.UI.ExplorePagingNum
 | ||||
| 	IsActive      util.OptionalBool | ||||
| 	SearchByEmail bool // Search by email as well as username/full name
 | ||||
| } | ||||
| 
 | ||||
| func (opts *SearchUserOptions) toConds() builder.Cond { | ||||
| 	var cond builder.Cond = builder.Eq{"type": opts.Type} | ||||
| 	if len(opts.Keyword) > 0 { | ||||
| 		lowerKeyword := strings.ToLower(opts.Keyword) | ||||
| 		cond = cond.And(builder.Or( | ||||
| 		keywordCond := builder.Or( | ||||
| 			builder.Like{"lower_name", lowerKeyword}, | ||||
| 			builder.Like{"LOWER(full_name)", lowerKeyword}, | ||||
| 		)) | ||||
| 		) | ||||
| 		if opts.SearchByEmail { | ||||
| 			keywordCond = keywordCond.Or(builder.Like{"LOWER(email)", lowerKeyword}) | ||||
| 		} | ||||
| 		cond = cond.And(keywordCond) | ||||
| 	} | ||||
| 
 | ||||
| 	if !opts.IsActive.IsNone() { | ||||
|  |  | |||
|  | @ -31,8 +31,9 @@ func Users(ctx *context.Context) { | |||
| 	ctx.Data["PageIsAdminUsers"] = true | ||||
| 
 | ||||
| 	routers.RenderUserSearch(ctx, &models.SearchUserOptions{ | ||||
| 		Type:     models.UserTypeIndividual, | ||||
| 		PageSize: setting.UI.Admin.UserPagingNum, | ||||
| 		Type:          models.UserTypeIndividual, | ||||
| 		PageSize:      setting.UI.Admin.UserPagingNum, | ||||
| 		SearchByEmail: true, | ||||
| 	}, tplUsers) | ||||
| } | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue