From: Dessalines Date: Sun, 2 Feb 2020 01:11:12 +0000 (-0500) Subject: Adding username and email case insensitivity uniqueness. Fixes #341 X-Git-Url: http://these/git/%7B%60%24%7BwebArchiveUrl%7D/%22%7B%7D/%24%7B%60data:application/static/%7B%60https:/README.ru.md?a=commitdiff_plain;h=8035976e40da4bc7598b43c2f8427ce7646c6630;p=lemmy.git Adding username and email case insensitivity uniqueness. Fixes #341 --- diff --git a/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/down.sql b/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/down.sql new file mode 100644 index 00000000..0c6f112f --- /dev/null +++ b/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/down.sql @@ -0,0 +1,2 @@ +drop index idx_user_name_lower; +drop index idx_user_email_lower; diff --git a/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/up.sql b/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/up.sql new file mode 100644 index 00000000..07f854b1 --- /dev/null +++ b/server/migrations/2020-02-02-004806_add_case_insensitive_usernames/up.sql @@ -0,0 +1,29 @@ +-- Add case insensitive username and email uniqueness + +-- An example of showing the dupes: +-- select +-- max(id) as id, +-- lower(name) as lname, +-- count(*) +-- from user_ +-- group by lower(name) +-- having count(*) > 1; + +-- Delete username dupes, keeping the first one +delete +from user_ +where id not in ( + select min(id) + from user_ + group by lower(name), lower(fedi_name) +); + +-- The user index +create unique index idx_user_name_lower on user_ (lower(name)); + +-- Email lower +create unique index idx_user_email_lower on user_ (lower(email)); + +-- Set empty emails properly to null +update user_ set email = null where email = ''; +