From 98260b3c889a0ec4bd5628268e469eb2d6dc697e Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 12 Jun 2023 13:53:08 +0530 Subject: [PATCH] fix(UX): show perm server messages on file uploader (#21331) --- frappe/permissions.py | 1 + .../js/frappe/file_uploader/FileUploader.vue | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frappe/permissions.py b/frappe/permissions.py index 67ed972c32..b3380dacc0 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -97,6 +97,7 @@ def has_permission( if not perm: push_perm_check_log( _("User {0} does not have access to this document").format(frappe.bold(user)) + + f": {_(doc.doctype)} - {doc.name}" ) else: if ptype == "submit" and not cint(meta.is_submittable): diff --git a/frappe/public/js/frappe/file_uploader/FileUploader.vue b/frappe/public/js/frappe/file_uploader/FileUploader.vue index b17b13eb83..eba6bf1b2a 100644 --- a/frappe/public/js/frappe/file_uploader/FileUploader.vue +++ b/frappe/public/js/frappe/file_uploader/FileUploader.vue @@ -473,7 +473,20 @@ function upload_file(file, i) { } else if (xhr.status === 403) { file.failed = true; let response = JSON.parse(xhr.responseText); - file.error_message = `Not permitted. ${response._error_message || ''}`; + file.error_message = `Not permitted. ${response._error_message || ''}.`; + + try { + // Append server messages which are useful hint for perm issues + let server_messages = JSON.parse(response._server_messages); + + server_messages.forEach((m) => { + m = JSON.parse(m); + file.error_message += `\n ${m.message} ` + }) + } catch (e) { + console.warning("Failed to parse server message", e) + } + } else if (xhr.status === 413) { file.failed = true;