From 21060acddcba04b0c61fce39596ac85efabbf717 Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Thu, 7 Nov 2024 19:05:34 +0100 Subject: [PATCH 1/2] fix: handle missing encryption key --- frappe/utils/password.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frappe/utils/password.py b/frappe/utils/password.py index 67d9c939da..bb8e4e1ca5 100644 --- a/frappe/utils/password.py +++ b/frappe/utils/password.py @@ -34,7 +34,13 @@ def get_decrypted_password(doctype, name, fieldname="password", raise_exception= ).run() if result and result[0][0]: - return decrypt(result[0][0], key=f"{doctype}.{name}.{fieldname}") + try: + return decrypt(result[0][0], key=f"{doctype}.{name}.{fieldname}") + except frappe.ValidationError as e: + if raise_exception: + raise e + + return None elif raise_exception: frappe.throw( From e5779373f1a1982a41373396620d951a077ef04a Mon Sep 17 00:00:00 2001 From: barredterra <14891507+barredterra@users.noreply.github.com> Date: Thu, 7 Nov 2024 19:06:25 +0100 Subject: [PATCH 2/2] fix(Login): don't prevent login if encryption key is invalid --- frappe/www/login.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frappe/www/login.py b/frappe/www/login.py index 48fdf71fb0..41a2fe0165 100644 --- a/frappe/www/login.py +++ b/frappe/www/login.py @@ -69,7 +69,9 @@ def get_context(context): ) for provider in providers: - client_secret = get_decrypted_password("Social Login Key", provider.name, "client_secret") + client_secret = get_decrypted_password( + "Social Login Key", provider.name, "client_secret", raise_exception=False + ) if not client_secret: continue