Auth: Enable case insensitive logins/emails by default (#84840)

* wip

* wip

* wip

* wip postgres tests
This commit is contained in:
Eric Leijonmarck
2024-03-22 16:45:18 +01:00
committed by GitHub
parent d7fa99e2df
commit 2f7fd729ef
10 changed files with 294 additions and 252 deletions

View File

@@ -106,11 +106,7 @@ func (ss *xormStore) GetTempUsersQuery(ctx context.Context, query *tempuser.GetT
}
if query.Email != "" {
if ss.cfg.CaseInsensitiveLogin {
rawSQL += ` AND LOWER(tu.email)=LOWER(?)`
} else {
rawSQL += ` AND tu.email=?`
}
rawSQL += ` AND LOWER(tu.email)=LOWER(?)`
params = append(params, query.Email)
}

View File

@@ -61,30 +61,14 @@ func TestIntegrationTempUserCommandsAndQueries(t *testing.T) {
require.Nil(t, err)
require.Equal(t, 1, len(queryResult))
})
t.Run("Should not be able to get temp users by case-insentive email - case sensitive", func(t *testing.T) {
if db.IsTestDbMySQL() {
t.Skip("MySQL is case insensitive by default")
}
setup(t)
store.cfg.CaseInsensitiveLogin = false
query := tempuser.GetTempUsersQuery{Email: "E@as.co", Status: tempuser.TmpUserInvitePending}
queryResult, err := store.GetTempUsersQuery(context.Background(), &query)
require.Nil(t, err)
require.Equal(t, 0, len(queryResult))
})
t.Run("Should be able to get temp users by email - case insensitive", func(t *testing.T) {
setup(t)
store.cfg.CaseInsensitiveLogin = true
query := tempuser.GetTempUsersQuery{Email: "E@as.co", Status: tempuser.TmpUserInvitePending}
queryResult, err := store.GetTempUsersQuery(context.Background(), &query)
require.Nil(t, err)
require.Equal(t, 1, len(queryResult))
t.Cleanup(func() {
store.cfg.CaseInsensitiveLogin = false
})
})
t.Run("Should be able to get temp users by code", func(t *testing.T) {