diff --git a/frappe/core/doctype/user/user.json b/frappe/core/doctype/user/user.json index 1ed15161a1..e8628669e8 100644 --- a/frappe/core/doctype/user/user.json +++ b/frappe/core/doctype/user/user.json @@ -641,6 +641,31 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "fieldname": "redirect_url", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Redirect Url", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 0, + "report_hide": 1, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_on_submit": 0, "bold": 0, diff --git a/frappe/core/doctype/user/user.py b/frappe/core/doctype/user/user.py index 10ffb28556..ffd9f62a2a 100644 --- a/frappe/core/doctype/user/user.py +++ b/frappe/core/doctype/user/user.py @@ -390,14 +390,23 @@ def update_password(new_password, key=None, old_password=None): _update_password(user, new_password) - frappe.db.set_value("User", user, "reset_password_key", "") + user_doc, redirect_url = reset_user_data(user) frappe.local.login_manager.login_as(user) - if frappe.db.get_value("User", user, "user_type")=="System User": + if user_doc.user_type == "System User": return "/desk" else: - return "/" + return redirect_url if redirect_url else "/" + +def reset_user_data(user): + user_doc = frappe.get_doc("User", user) + redirect_url = user_doc.redirect_url + user_doc.reset_password_key = '' + user_doc.redirect_url = '' + user_doc.save(ignore_permissions=True) + + return user_doc, redirect_url @frappe.whitelist() def verify_password(password):