diff --git a/frappe/utils/password.py b/frappe/utils/password.py index 69f0b5ed54..67d9c939da 100644 --- a/frappe/utils/password.py +++ b/frappe/utils/password.py @@ -34,7 +34,7 @@ def get_decrypted_password(doctype, name, fieldname="password", raise_exception= ).run() if result and result[0][0]: - return decrypt(result[0][0]) + return decrypt(result[0][0], key=f"{doctype}.{name}.{fieldname}") elif raise_exception: frappe.throw( @@ -183,7 +183,7 @@ def encrypt(txt, encryption_key=None): return cstr(cipher_suite.encrypt(encode(txt))) -def decrypt(txt, encryption_key=None): +def decrypt(txt, encryption_key=None, key: str | None = None): # Only use encryption_key value generated with Fernet.generate_key().decode() try: @@ -192,12 +192,13 @@ def decrypt(txt, encryption_key=None): except InvalidToken: # encryption_key in site_config is changed and not valid frappe.throw( - _("Encryption key is invalid! Please check site_config.json") - + "
" + (_("Failed to decrypt key {0}").format(key) + "

" if key else "") + + _("Encryption key is invalid! Please check site_config.json") + + "

" + _( "If you have recently restored the site you may need to copy the site config contaning original Encryption Key." ) - + "
" + + "

" + _( "Please visit https://frappecloud.com/docs/sites/migrate-an-existing-site#encryption-key for more information." ),