bmersereau fixes the sharing bug that locked invited users out

When you share a project, the person you invited should get in - bmersereau found a case where they didn't.

securitymulti-tenant

The culprit was email capitalization. When someone shares a project with a colleague, the system stores that colleague's email address. But one corner of the app checked membership with an exact, case-sensitive match, while the rest of the app ignored case. The result: a properly invited user whose stored email differed only in capitalization got shut out of a project that had genuinely been shared with them.

bmersereau's fix makes the whole app consistent - smoothing out email casing everywhere an address gets stored and everywhere it gets checked, so what's written on the way in matches what's read on the way out. The logic now lives in one shared place with tests covering the awkward cases: duplicates, blank entries, and missing addresses. Three separately reported issues fold into this one fix.

So what Anyone leaning on project sharing to collaborate should care - this is the difference between an invite that works and one that quietly fails.

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?