diff options
| author | 2022-12-01 16:06:09 +0100 | |
|---|---|---|
| committer | 2022-12-01 16:06:09 +0100 | |
| commit | cf20397f261becaf84d4d3e3f6620d1366b34131 (patch) | |
| tree | dc46e3a337b2606b01856211d40c196cb03c41d4 /internal/db/bundb/account.go | |
| parent | [feature] Support PKCS1 "RSA PUBLIC KEY" pem block type (#1179) (diff) | |
| download | gotosocial-cf20397f261becaf84d4d3e3f6620d1366b34131.tar.xz | |
[bugfix] Use case-insensitive selects when getting remote accounts by username/domain (#1191)v0.6.0-rc2
* [bugfix] Case-insensitive account selection
* don't lowercase cache key
Diffstat (limited to 'internal/db/bundb/account.go')
| -rw-r--r-- | internal/db/bundb/account.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/internal/db/bundb/account.go b/internal/db/bundb/account.go index 712e0c1c7..ea0852d77 100644 --- a/internal/db/bundb/account.go +++ b/internal/db/bundb/account.go @@ -22,6 +22,7 @@ import ( "context" "errors" "fmt" + "strings" "time" "codeberg.org/gruf/go-cache/v3/result" @@ -108,11 +109,13 @@ func (a *accountDB) GetAccountByUsernameDomain(ctx context.Context, username str q := a.newAccountQ(account) if domain != "" { - q = q.Where("? = ?", bun.Ident("account.username"), username) - q = q.Where("? = ?", bun.Ident("account.domain"), domain) + q = q. + Where("LOWER(?) = ?", bun.Ident("account.username"), strings.ToLower(username)). + Where("? = ?", bun.Ident("account.domain"), domain) } else { - q = q.Where("? = ?", bun.Ident("account.username"), username) - q = q.Where("? IS NULL", bun.Ident("account.domain")) + q = q. + Where("? = ?", bun.Ident("account.username"), strings.ToLower(username)). // usernames on our instance are always lowercase + Where("? IS NULL", bun.Ident("account.domain")) } return q.Scan(ctx) |
