fix: workspace invitation failure due to email case sensitivity (#904)

* fix: integration test failure due to password mismatch

* fix: workspace invitation failure due to email case sensitivity
This commit is contained in:
Khor Shu Heng 2024-10-19 10:10:35 +08:00 committed by GitHub
parent 60c589bd9c
commit ba8a670101
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 15 additions and 15 deletions

View file

@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n workspace_id,\n inviter AS inviter_uid,\n (SELECT uid FROM public.af_user WHERE email = invitee_email) AS invitee_uid,\n status,\n role_id AS role\n FROM\n public.af_workspace_invitation\n WHERE id = $1\n ",
"query": "\n SELECT\n workspace_id,\n inviter AS inviter_uid,\n (SELECT uid FROM public.af_user WHERE LOWER(email) = LOWER(invitee_email)) AS invitee_uid,\n status,\n role_id AS role\n FROM\n public.af_workspace_invitation\n WHERE id = $1\n ",
"describe": {
"columns": [
{
@ -42,5 +42,5 @@
false
]
},
"hash": "7244adcf92c93f0cb7b3311f348617e442145affb56c90e12a81563232b284b4"
"hash": "18207c125d5f974894576ee1dcfe406b221e9119f570403ec7a41ae1359b3f6c"
}

View file

@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n i.id AS invite_id,\n i.workspace_id,\n w.workspace_name,\n u_inviter.email AS inviter_email,\n u_inviter.name AS inviter_name,\n i.status,\n i.updated_at,\n u_inviter.metadata->>'icon_url' AS inviter_icon,\n w.icon AS workspace_icon,\n (SELECT COUNT(*) FROM public.af_workspace_member m WHERE m.workspace_id = i.workspace_id) AS member_count\n FROM\n public.af_workspace_invitation i\n JOIN public.af_workspace w ON i.workspace_id = w.workspace_id\n JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid\n JOIN public.af_user u_invitee ON u_invitee.uuid = $1\n WHERE\n i.invitee_email = u_invitee.email\n AND ($2::SMALLINT IS NULL OR i.status = $2);\n ",
"query": "\n SELECT\n i.id AS invite_id,\n i.workspace_id,\n w.workspace_name,\n u_inviter.email AS inviter_email,\n u_inviter.name AS inviter_name,\n i.status,\n i.updated_at,\n u_inviter.metadata->>'icon_url' AS inviter_icon,\n w.icon AS workspace_icon,\n (SELECT COUNT(*) FROM public.af_workspace_member m WHERE m.workspace_id = i.workspace_id) AS member_count\n FROM\n public.af_workspace_invitation i\n JOIN public.af_workspace w ON i.workspace_id = w.workspace_id\n JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid\n JOIN public.af_user u_invitee ON u_invitee.uuid = $1\n WHERE\n LOWER(i.invitee_email) = LOWER(u_invitee.email)\n AND ($2::SMALLINT IS NULL OR i.status = $2);\n ",
"describe": {
"columns": [
{
@ -73,5 +73,5 @@
null
]
},
"hash": "de595bd6554d8e1f58c9c4bb94ea14b5ae2fd15b3c5d2b84d5dd5a551954ecde"
"hash": "b16f38d563d4d0b35f06978a8b2c76dc5121b0e59f8b5992c9dad05dd101c8ad"
}

View file

@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n UPDATE public.af_workspace_invitation\n SET status = 1\n WHERE invitee_email = (SELECT email FROM public.af_user WHERE uuid = $1)\n AND id = $2\n AND status = 0\n ",
"query": "\n UPDATE public.af_workspace_invitation\n SET status = 1\n WHERE LOWER(invitee_email) = (SELECT LOWER(email) FROM public.af_user WHERE uuid = $1)\n AND id = $2\n AND status = 0\n ",
"describe": {
"columns": [],
"parameters": {
@ -11,5 +11,5 @@
},
"nullable": []
},
"hash": "5d2ab1eb7ab9ebea8c162f4b742c72dbea7f3d18849f6cd7865068be9b01d759"
"hash": "e219696c80f1d4c38260ebeb50ec78e344975eef6760951dbf6201c01b8ceef0"
}

View file

@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT EXISTS(\n SELECT 1\n FROM af_workspace_invitation\n WHERE id = $1 AND invitee_email = (SELECT email FROM af_user WHERE uuid = $2)\n )\n ",
"query": "\n SELECT EXISTS(\n SELECT 1\n FROM af_workspace_invitation\n WHERE id = $1 AND LOWER(invitee_email) = (SELECT LOWER(email) FROM af_user WHERE uuid = $2)\n )\n ",
"describe": {
"columns": [
{
@ -19,5 +19,5 @@
null
]
},
"hash": "7c8b84da6d70cb4ae59ae618e6f7aa7bde3dbd6630bd7e7fcafe1606d63651c8"
"hash": "fa92aff963d9a0c69fb203f76f54728c67d52a68eada59ba3bd445c4b8aeceef"
}

View file

@ -1,6 +1,6 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT\n i.id AS invite_id,\n i.workspace_id,\n w.workspace_name,\n u_inviter.email AS inviter_email,\n u_inviter.name AS inviter_name,\n i.status,\n i.updated_at,\n u_inviter.metadata->>'icon_url' AS inviter_icon,\n w.icon AS workspace_icon,\n (SELECT COUNT(*) FROM public.af_workspace_member m WHERE m.workspace_id = i.workspace_id) AS member_count\n FROM\n public.af_workspace_invitation i\n JOIN public.af_workspace w ON i.workspace_id = w.workspace_id\n JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid\n JOIN public.af_user u_invitee ON u_invitee.uuid = $1\n WHERE\n i.invitee_email = u_invitee.email\n AND i.id = $2;\n ",
"query": "\n SELECT\n i.id AS invite_id,\n i.workspace_id,\n w.workspace_name,\n u_inviter.email AS inviter_email,\n u_inviter.name AS inviter_name,\n i.status,\n i.updated_at,\n u_inviter.metadata->>'icon_url' AS inviter_icon,\n w.icon AS workspace_icon,\n (SELECT COUNT(*) FROM public.af_workspace_member m WHERE m.workspace_id = i.workspace_id) AS member_count\n FROM\n public.af_workspace_invitation i\n JOIN public.af_workspace w ON i.workspace_id = w.workspace_id\n JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid\n JOIN public.af_user u_invitee ON u_invitee.uuid = $1\n WHERE\n LOWER(i.invitee_email) = LOWER(u_invitee.email)\n AND i.id = $2;\n ",
"describe": {
"columns": [
{
@ -73,5 +73,5 @@
null
]
},
"hash": "2ee385e58e042071290226289646965553938838c83085273f68f687c976767a"
"hash": "faf37892741717680e9a8d8e7d8decaba571d0dd129b57334aad7c63e2a2ef59"
}

View file

@ -332,7 +332,7 @@ pub async fn update_workspace_invitation_set_status_accepted(
r#"
UPDATE public.af_workspace_invitation
SET status = 1
WHERE invitee_email = (SELECT email FROM public.af_user WHERE uuid = $1)
WHERE LOWER(invitee_email) = (SELECT LOWER(email) FROM public.af_user WHERE uuid = $1)
AND id = $2
AND status = 0
"#,
@ -367,7 +367,7 @@ pub async fn get_invitation_by_id(
SELECT
workspace_id,
inviter AS inviter_uid,
(SELECT uid FROM public.af_user WHERE email = invitee_email) AS invitee_uid,
(SELECT uid FROM public.af_user WHERE LOWER(email) = LOWER(invitee_email)) AS invitee_uid,
status,
role_id AS role
FROM
@ -408,7 +408,7 @@ pub async fn select_workspace_invitations_for_user(
JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid
JOIN public.af_user u_invitee ON u_invitee.uuid = $1
WHERE
i.invitee_email = u_invitee.email
LOWER(i.invitee_email) = LOWER(u_invitee.email)
AND ($2::SMALLINT IS NULL OR i.status = $2);
"#,
invitee_uuid,
@ -445,7 +445,7 @@ pub async fn select_workspace_invitation_for_user(
JOIN public.af_user u_inviter ON i.inviter = u_inviter.uid
JOIN public.af_user u_invitee ON u_invitee.uuid = $1
WHERE
i.invitee_email = u_invitee.email
LOWER(i.invitee_email) = LOWER(u_invitee.email)
AND i.id = $2;
"#,
invitee_uuid,
@ -1428,7 +1428,7 @@ pub async fn select_user_is_invitee_for_workspace_invitation(
SELECT EXISTS(
SELECT 1
FROM af_workspace_invitation
WHERE id = $1 AND invitee_email = (SELECT email FROM af_user WHERE uuid = $2)
WHERE id = $1 AND LOWER(invitee_email) = (SELECT LOWER(email) FROM af_user WHERE uuid = $2)
)
"#,
invite_id,