diff --git a/cypress/integration/control_attach.js b/cypress/integration/control_attach.js index 6714f6c24e..ddaa22884d 100644 --- a/cypress/integration/control_attach.js +++ b/cypress/integration/control_attach.js @@ -29,7 +29,8 @@ context("Attach Control", () => { //Clicking on "Link" button to attach a file using the "Link" button cy.findByRole("button", { name: "Link" }).click(); cy.findByPlaceholderText("Attach a web link").type( - "https://wallpaperplay.com/walls/full/8/2/b/72402.jpg" + "https://wallpaperplay.com/walls/full/8/2/b/72402.jpg", + { force: true } ); //Clicking on the Upload button to upload the file diff --git a/cypress/integration/sidebar.js b/cypress/integration/sidebar.js index c8aa2a441b..7510425db3 100644 --- a/cypress/integration/sidebar.js +++ b/cypress/integration/sidebar.js @@ -81,7 +81,7 @@ context("Sidebar", () => { // test "Show All" button cy.get(".attachment-row").should("have.length", 10); - cy.get(".show-all-btn").click(); + cy.get(".show-all-btn").click({ force: true }); cy.get(".attachment-row").should("have.length", 12); }); }); @@ -120,7 +120,7 @@ context("Sidebar", () => { ).click(); //To check if filter is applied - cy.click_filter_button().should("contain", "1 filter"); + cy.click_filter_button().get(".filter-label").should("contain", "1"); cy.get(".fieldname-select-area > .awesomplete > .form-control").should( "have.value", "Assigned To" diff --git a/cypress/integration/theme_switcher_dialog.js b/cypress/integration/theme_switcher_dialog.js index 158ff3e244..53c3323a6d 100644 --- a/cypress/integration/theme_switcher_dialog.js +++ b/cypress/integration/theme_switcher_dialog.js @@ -7,22 +7,30 @@ context("Theme Switcher Shortcut", () => { cy.reload(); }); it("Check Toggle", () => { - cy.open_theme_dialog("{ctrl+shift+g}"); + cy.open_theme_dialog(); cy.get(".modal-backdrop").should("exist"); - cy.get(".theme-grid > div").first().click(); + cy.intercept("POST", "/api/method/frappe.core.doctype.user.user.switch_theme").as( + "set_theme" + ); + cy.findByText("Timeless Night").click(); + cy.wait("@set_theme"); cy.close_theme("{ctrl+shift+g}"); cy.get(".modal-backdrop").should("not.exist"); }); it("Check Enter", () => { - cy.open_theme_dialog("{ctrl+shift+g}"); - cy.get(".theme-grid > div").first().click(); + cy.open_theme_dialog(); + cy.intercept("POST", "/api/method/frappe.core.doctype.user.user.switch_theme").as( + "set_theme" + ); + cy.findByText("Frappe Light").click(); + cy.wait("@set_theme"); cy.close_theme("{enter}"); cy.get(".modal-backdrop").should("not.exist"); }); }); -Cypress.Commands.add("open_theme_dialog", (shortcut_keys) => { - cy.get("body").type(shortcut_keys); +Cypress.Commands.add("open_theme_dialog", () => { + cy.get("body").type("{ctrl+shift+g}"); }); Cypress.Commands.add("close_theme", (shortcut_keys) => { cy.get(".modal-header").type(shortcut_keys); diff --git a/frappe/contacts/doctype/address/address.py b/frappe/contacts/doctype/address/address.py index e81a80fb65..ea6e9772fd 100644 --- a/frappe/contacts/doctype/address/address.py +++ b/frappe/contacts/doctype/address/address.py @@ -170,7 +170,9 @@ def get_address_display(address_dict: dict | str | None) -> str | None: return if not isinstance(address_dict, dict): - address_dict = frappe.db.get_value("Address", address_dict, "*", as_dict=True, cache=True) or {} + address = frappe.get_cached_doc("Address", address_dict) + address.check_permission() + address_dict = address.as_dict() name, template = get_address_templates(address_dict) diff --git a/frappe/contacts/doctype/contact/contact.py b/frappe/contacts/doctype/contact/contact.py index e78f1b006c..c1bd2f55ec 100644 --- a/frappe/contacts/doctype/contact/contact.py +++ b/frappe/contacts/doctype/contact/contact.py @@ -217,6 +217,8 @@ def invite_user(contact): @frappe.whitelist() def get_contact_details(contact): contact = frappe.get_doc("Contact", contact) + contact.check_permission() + return { "contact_person": contact.get("name"), "contact_display": contact.get("full_name"), diff --git a/frappe/permissions.py b/frappe/permissions.py index 0e7c0d6480..1f0d182b07 100644 --- a/frappe/permissions.py +++ b/frappe/permissions.py @@ -172,7 +172,7 @@ def get_doc_permissions(doc, user=None, ptype=None): return (doc.get("owner") or "").lower() == user.lower() if has_controller_permissions(doc, ptype, user=user) is False: - push_perm_check_log("Not allowed via controller permission check") + push_perm_check_log(_("Not allowed via controller permission check")) return {ptype: 0} permissions = copy.deepcopy(get_role_permissions(meta, user=user, is_owner=is_user_owner())) @@ -686,7 +686,7 @@ def push_perm_check_log(log): if frappe.flags.get("has_permission_check_logs") is None: return - frappe.flags.get("has_permission_check_logs").append(_(log)) + frappe.flags.get("has_permission_check_logs").append(log) def has_child_permission( diff --git a/frappe/public/icons/espresso/icons.svg b/frappe/public/icons/espresso/icons.svg index 7508cd717f..3cd91a3791 100644 --- a/frappe/public/icons/espresso/icons.svg +++ b/frappe/public/icons/espresso/icons.svg @@ -522,6 +522,13 @@ + + + + + + + @@ -989,6 +996,12 @@ + + + + + + diff --git a/frappe/public/js/frappe/form/templates/form_sidebar.html b/frappe/public/js/frappe/form/templates/form_sidebar.html index 0fe6ca16d5..60d2a4ae60 100644 --- a/frappe/public/js/frappe/form/templates/form_sidebar.html +++ b/frappe/public/js/frappe/form/templates/form_sidebar.html @@ -45,7 +45,7 @@
  • @@ -56,21 +56,22 @@ - - - +