From 1557d687fb5c983e395b18aa5edfac6592be067e Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 17 May 2023 11:11:38 +0530 Subject: [PATCH 1/3] fix: frappe.get_palette when text is undefined (#21033) (#21034) [skip ci] (cherry picked from commit 44e592fb9102e157d978e087d7f069649413324d) Co-authored-by: Rushabh Mehta --- frappe/public/js/frappe/utils/common.js | 1 + 1 file changed, 1 insertion(+) diff --git a/frappe/public/js/frappe/utils/common.js b/frappe/public/js/frappe/utils/common.js index 6114ce44f2a..15aec787f5a 100644 --- a/frappe/public/js/frappe/utils/common.js +++ b/frappe/public/js/frappe/utils/common.js @@ -129,6 +129,7 @@ frappe.palette = [ ]; frappe.get_palette = function (txt) { + if (!txt) return frappe.palette[8]; // breaks when undefined var idx = cint((parseInt(md5(txt).substr(4, 2), 16) + 1) / 5.33); return frappe.palette[idx % 8]; } From 6c57a2696ae0e122aac3505356beab15e4000864 Mon Sep 17 00:00:00 2001 From: ruthra kumar Date: Thu, 18 May 2023 16:48:19 +0530 Subject: [PATCH 2/3] fix: using 'Equals' and 'Is' on multiselect throws error (cherry picked from commit 6b2bcd5b0757b2ac5848d8a92b23acf3701ffc65) --- frappe/desk/reportview.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/frappe/desk/reportview.py b/frappe/desk/reportview.py index 014094c4389..dc6634799a4 100644 --- a/frappe/desk/reportview.py +++ b/frappe/desk/reportview.py @@ -687,6 +687,7 @@ def get_filters_cond( if isinstance(f[1], string_types) and f[1][0] == "!": flt.append([doctype, f[0], "!=", f[1][1:]]) elif isinstance(f[1], (list, tuple)) and f[1][0].lower() in ( + "=", ">", "<", ">=", @@ -697,6 +698,7 @@ def get_filters_cond( "in", "not in", "between", + "is", ): flt.append([doctype, f[0], f[1][0], f[1][1]]) From a9acf3fac244b39b555632f63a1dae40df520103 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 19 May 2023 09:44:28 +0530 Subject: [PATCH 3/3] fix: incorrect caching of `is_owner` permissions (#21048) (#21052) - Create a doctype - Pick any role and only allow owner to create, read, write. - after_insert hook re-save the document - This will fail because there's a function call to `frappe.only_has_select_perm` which doesn't pass the is_owner, this is likely acceptable if document is not available. Fix: cache should be separate for is_owner Triggered from but not caused by https://github.com/frappe/frappe/pull/20810 (cherry picked from commit d0a24e66c5c567f25278dfc5db747b794f8123ee) Co-authored-by: Ankush Menat --- frappe/permissions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frappe/permissions.py b/frappe/permissions.py index fff531a8281..79503a3e95f 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -207,7 +207,7 @@ def get_role_permissions(doctype_meta, user=None, is_owner=None): if not user: user = frappe.session.user - cache_key = (doctype_meta.name, user) + cache_key = (doctype_meta.name, user, bool(is_owner)) if user == "Administrator": return allow_everything()