Skip to content

Commit e878bb7

Browse files
committed
Fix generate_username to be case insensitive
1 parent ec3dc14 commit e878bb7

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

server/mergin/auth/models.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,12 +210,12 @@ def generate_username(cls, email: str) -> Optional[str]:
210210
text(
211211
"""
212212
SELECT
213-
replace(username, :username, '0')::int AS suffix
213+
replace(lower(username), :username, '0')::int AS suffix
214214
FROM "user"
215215
WHERE
216-
username = :username OR
217-
username SIMILAR TO :username_like
218-
ORDER BY replace(username, :username, '0')::int DESC
216+
lower(username) = :username OR
217+
lower(username) SIMILAR TO :username_like
218+
ORDER BY replace(lower(username), :username, '0')::int DESC
219219
LIMIT 1;
220220
"""
221221
),

server/mergin/tests/test_auth.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -856,6 +856,13 @@ def test_username_generation(client):
856856
== "verylonglonglonglonglo"
857857
)
858858

859+
# test username generation with existing user, case insensitive
860+
user = add_user("Testuser")
861+
assert User.generate_username("Testuser@example.com") == "testuser1"
862+
assert User.generate_username("testuser@example.com") == "testuser1"
863+
user = add_user("testuser1")
864+
assert User.generate_username("Testuser@example.com") == "testuser2"
865+
859866

860867
def test_server_usage(client):
861868
"""Test server usage endpoint"""

0 commit comments

Comments
 (0)