Skip to content

Fix case-insensitive user email lookups#247

Merged
jenewland1999 merged 2 commits into
developfrom
fix/email-case-user-lookups
Mar 28, 2026
Merged

Fix case-insensitive user email lookups#247
jenewland1999 merged 2 commits into
developfrom
fix/email-case-user-lookups

Conversation

@jenewland1999

Copy link
Copy Markdown
Collaborator

Summary:

  • add a shared helper to normalize emails and compare them case-insensitively
  • switch authenticated user lookups in company, party, banking, stock, and activity flows to use the helper
  • normalize new user emails before storing them and block case-only duplicate emails

Verification:

  • eslint passed on the touched files
  • typecheck still fails because of pre-existing missing @ajstrongdev/start-themes module/type errors in theme files
  • the new Vitest test could not run in this sandbox because Vitest hit listen EPERM on ::1

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR standardizes user-email handling to be case-insensitive across server flows, aiming to prevent authentication/user-lookup mismatches and block case-only duplicate emails at account creation.

Changes:

  • Added shared email utilities (normalizeEmail, userEmailEquals) for normalization and case-insensitive comparisons.
  • Updated multiple authenticated user lookups (middleware + banking/party/stocks/users server fns) to use the helper instead of case-sensitive or ad-hoc lower(...) comparisons.
  • Normalized new user emails on insert and added a Vitest unit test for email normalization.

Reviewed changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/middleware/auth.ts Updates activity-tracking user update to use case-insensitive email matching.
src/lib/server/users.ts Normalizes stored emails on create and reuses helper for email-based lookups.
src/lib/server/user-email.ts Introduces shared normalization and Drizzle WHERE helper for email equality.
src/lib/server/user-email.test.ts Adds unit test covering trimming/lowercasing behavior of normalization.
src/lib/server/stocks.ts Switches several authenticated user lookups to helper (but leaves one inline lower(...) lookup).
src/lib/server/party.ts Switches party-related email lookups to helper.
src/lib/server/banking.ts Switches bank balance lookup to helper.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/middleware/auth.ts Outdated
Comment thread src/lib/server/stocks.ts
Comment thread src/lib/server/user-email.ts
@jenewland1999 jenewland1999 merged commit 4c5c0e6 into develop Mar 28, 2026
2 checks passed
@jenewland1999 jenewland1999 deleted the fix/email-case-user-lookups branch March 28, 2026 12:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants