1
0

fix: only list all users when allowed

This commit is contained in:
kolaente
2022-08-15 22:39:41 +02:00
committed by Gitea
parent 3047ccfd4a
commit 9ddd7f4889
3 changed files with 51 additions and 11 deletions

View File

@ -41,17 +41,25 @@ func ListUsers(s *xorm.Session, search string, opts *ListUserOpts) (users []*Use
return
}
cond := builder.Or(
builder.Like{"username", "%" + search + "%"},
builder.And(
builder.Eq{"email": search},
builder.Eq{"discoverable_by_email": true},
),
builder.And(
builder.Like{"name", "%" + search + "%"},
builder.Eq{"discoverable_by_name": true},
),
)
conds := []builder.Cond{}
if search != "" {
for _, queryPart := range strings.Split(search, ",") {
conds = append(conds,
builder.Eq{"username": queryPart},
builder.And(
builder.Eq{"email": queryPart},
builder.Eq{"discoverable_by_email": true},
),
builder.And(
builder.Like{"name", "%" + queryPart + "%"},
builder.Eq{"discoverable_by_name": true},
),
)
}
}
cond := builder.Or(conds...)
if opts.AdditionalCond != nil {
cond = builder.And(