diff --git a/frappe/core/page/desktop/desktop.js b/frappe/core/page/desktop/desktop.js index 332e23a985..2e0f2ee724 100644 --- a/frappe/core/page/desktop/desktop.js +++ b/frappe/core/page/desktop/desktop.js @@ -45,6 +45,12 @@ frappe.desktop.render = function() { if(module.link) { module._link = module.link.toLowerCase().replace("/", "-"); } + + if(!module.label) { + module.label = m; + } + module.name = m; + module._label = frappe._(module.label || module.name); module.app_icon = frappe.ui.app_icon.get_html(m); @@ -74,12 +80,6 @@ frappe.desktop.render = function() { $.each(modules_list, function(i, m) { var module = frappe.modules[m]; if(module) { - if(!module.label) { - module.label = m; - } - module.name = m; - module._label = frappe._(module.label); - if(m!="Setup" && user_list.indexOf(m)!==-1) add_icon(m); } diff --git a/frappe/templates/pages/login.py b/frappe/templates/pages/login.py index ef64dc5f5f..3d9aa05968 100644 --- a/frappe/templates/pages/login.py +++ b/frappe/templates/pages/login.py @@ -150,11 +150,13 @@ def login_oauth_user(data, provider=None): if not frappe.db.exists("Profile", user): create_oauth_user(data, provider) - frappe.local._response = redirect("/") - frappe.local.login_manager.user = user frappe.local.login_manager.post_login() + # redirect! + frappe.local.response["type"] = "redirect" + frappe.local.response["location"] = "/app" if frappe.local.response.get('message') == 'Logged In' else "/" + # because of a GET request! frappe.db.commit() diff --git a/frappe/utils/response.py b/frappe/utils/response.py index 788871b19a..1b4b7a4c56 100644 --- a/frappe/utils/response.py +++ b/frappe/utils/response.py @@ -23,7 +23,8 @@ def build_response(): 'csv': print_csv, 'download': print_raw, 'json': print_json, - 'page': print_page + 'page': print_page, + 'redirect': redirect } print_map.get(frappe.response.get('type'), print_json)() @@ -38,7 +39,18 @@ def print_json(): cleanup_docs() frappe._response.headers["Content-Type"] = "text/json; charset: utf-8" print_zip(json.dumps(frappe.local.response, default=json_handler, separators=(',',':'))) - + +def redirect(): + frappe._response.data = """ +
You should be redirected automatically to target URL: /. + If not click the link.'""".format(location=frappe.response.location) + + frappe._response.headers["Content-Type"] = "text/html; charset: utf-8" + frappe._response.status_code = frappe.response.status_code or 302 + frappe._response.location = frappe.response.location + def cleanup_docs(): if frappe.response.get('docs') and type(frappe.response['docs'])!=dict: frappe.response['docs'] = frappe.model.utils.compress(frappe.response['docs'])