From e081fdc4468ae7effe203c14aef3fc93b04011d8 Mon Sep 17 00:00:00 2001 From: Alexander Date: Fri, 14 Jun 2024 15:35:32 +0200 Subject: [PATCH] feat(api): update internal id for existing account --- ee/api/chalicelib/core/signup.py | 1 + ee/api/chalicelib/core/users.py | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/ee/api/chalicelib/core/signup.py b/ee/api/chalicelib/core/signup.py index 4e39283f7..ab0c03eb3 100644 --- a/ee/api/chalicelib/core/signup.py +++ b/ee/api/chalicelib/core/signup.py @@ -134,6 +134,7 @@ async def create_oauth_tenant(fullname: str, email: str): errors.append("Invalid email address.") else: if users.email_exists(email): + users.update_user_internal_id(email, email) return users.authenticate_sso(email, email) if users.get_deleted_user_by_email(email) is not None: errors.append("Email address previously deleted.") diff --git a/ee/api/chalicelib/core/users.py b/ee/api/chalicelib/core/users.py index f282e1d8d..d33752c2d 100644 --- a/ee/api/chalicelib/core/users.py +++ b/ee/api/chalicelib/core/users.py @@ -1020,3 +1020,16 @@ def update_user_settings(user_id, settings): {"user_id": user_id, "settings": json.dumps(settings)}) ) return helper.dict_to_camel_case(cur.fetchone()) + + +def update_user_internal_id(email, internal_id): + with pg_client.PostgresClient() as cur: + cur.execute( + cur.mogrify( + f"""UPDATE public.users + SET internal_id = %(internal_id)s + WHERE email = %(email)s + AND deleted_at IS NULL;""", + {"email": email, "internal_id": internal_id}) + ) + return helper.dict_to_camel_case(cur.fetchone())