Adding username and email case insensitivity uniqueness. Fixes #341
This commit is contained in:
parent
1e8fa79b67
commit
323c5dc26c
2 changed files with 31 additions and 0 deletions
2
server/migrations/2020-02-02-004806_add_case_insensitive_usernames/down.sql
vendored
Normal file
2
server/migrations/2020-02-02-004806_add_case_insensitive_usernames/down.sql
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
drop index idx_user_name_lower;
|
||||||
|
drop index idx_user_email_lower;
|
29
server/migrations/2020-02-02-004806_add_case_insensitive_usernames/up.sql
vendored
Normal file
29
server/migrations/2020-02-02-004806_add_case_insensitive_usernames/up.sql
vendored
Normal file
|
@ -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 = '';
|
||||||
|
|
Reference in a new issue