Skip to content

Commit

Permalink
allow email= in user search (#3413)
Browse files Browse the repository at this point in the history
  • Loading branch information
mastercactapus authored Nov 6, 2023
1 parent 55a37d7 commit 8922f6c
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion user/search.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package user
import (
"context"
"database/sql"
"strings"
"text/template"

"github.com/pkg/errors"
Expand Down Expand Up @@ -72,6 +73,9 @@ var searchTemplate = template.Must(template.New("search").Funcs(search.Helpers()
(fav isnull AND lower(usr.name) > lower(:afterName))
{{end}}
{{end}}
{{ if .Email }}
AND lower(usr.email) = lower(:Email)
{{ end }}
{{ if .CMValue }}
AND ucm.value = :CMValue
{{ end }}
Expand All @@ -91,6 +95,21 @@ func (opts renderData) OrderBy() string {
return "lower(usr.name), usr.id"
}

func (opts renderData) SearchString() string {
if opts.Email() != "" {
return ""
}

return opts.Search
}

func (opts renderData) Email() string {
if !strings.HasPrefix(opts.Search, "email=") {
return ""
}
return strings.TrimPrefix(opts.Search, "email=")
}

func (opts renderData) Normalize() (*renderData, error) {
if opts.Limit == 0 {
opts.Limit = search.DefaultMaxResults
Expand Down Expand Up @@ -125,12 +144,13 @@ func (opts renderData) Normalize() (*renderData, error) {

func (opts renderData) QueryArgs() []sql.NamedArg {
return []sql.NamedArg{
sql.Named("search", opts.Search),
sql.Named("search", opts.SearchString()),
sql.Named("afterName", opts.After.Name),
sql.Named("omit", sqlutil.UUIDArray(opts.Omit)),
sql.Named("CMValue", opts.CMValue),
sql.Named("CMType", opts.CMType),
sql.Named("favUserID", opts.FavoritesUserID),
sql.Named("Email", opts.Email()),
}
}

Expand Down

0 comments on commit 8922f6c

Please sign in to comment.