Fix #2287 by trying to fetch account by lowercase localpart (#2292)

* Fix #2287 by trying to fetch account by lowercase localpart and as
passed by request
This commit is contained in:
S7evinK 2022-03-23 13:55:34 +01:00 committed by GitHub
parent 3213910977
commit 6e8cca344a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -23,6 +23,7 @@ import (
"errors" "errors"
"fmt" "fmt"
"strconv" "strconv"
"strings"
"time" "time"
"github.com/matrix-org/gomatrixserverlib" "github.com/matrix-org/gomatrixserverlib"
@ -298,7 +299,12 @@ func (d *Database) CheckAccountAvailability(ctx context.Context, localpart strin
// Returns sql.ErrNoRows if no account exists which matches the given localpart. // Returns sql.ErrNoRows if no account exists which matches the given localpart.
func (d *Database) GetAccountByLocalpart(ctx context.Context, localpart string, func (d *Database) GetAccountByLocalpart(ctx context.Context, localpart string,
) (*api.Account, error) { ) (*api.Account, error) {
return d.Accounts.SelectAccountByLocalpart(ctx, localpart) // try to get the account with lowercase localpart (majority)
acc, err := d.Accounts.SelectAccountByLocalpart(ctx, strings.ToLower(localpart))
if err == sql.ErrNoRows {
acc, err = d.Accounts.SelectAccountByLocalpart(ctx, localpart) // try with localpart as passed by the request
}
return acc, err
} }
// SearchProfiles returns all profiles where the provided localpart or display name // SearchProfiles returns all profiles where the provided localpart or display name