From eb4d6ad0b69f4540e7a6a6d39045d170db7c95ee Mon Sep 17 00:00:00 2001 From: Victor Feyens Date: Tue, 7 Nov 2023 15:57:00 +0100 Subject: [PATCH] [FIX] website_sale: address updates Added test for recent fix 495a5090a5bb96d4114690c61c5398282ec263c3 Also fixes a wrong recordset vs id comparison closes odoo/odoo#141496 Signed-off-by: Victor Feyens (vfe) --- addons/website_sale/controllers/main.py | 4 ++-- addons/website_sale/tests/test_sale_process.py | 10 +++++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py index 0955fac9bb5..732e28bce04 100644 --- a/addons/website_sale/controllers/main.py +++ b/addons/website_sale/controllers/main.py @@ -1234,9 +1234,9 @@ class WebsiteSale(payment_portal.PaymentPortal): else: address_mode = kw.get('mode') if not address_mode: - if partner_id == order.partner_invoice_id: + if partner_id == order.partner_invoice_id.id: address_mode = 'billing' - elif partner_id == order.partner_shipping_id: + elif partner_id == order.partner_shipping_id.id: address_mode = 'shipping' # Make sure the address exists and belongs to the customer of the SO diff --git a/addons/website_sale/tests/test_sale_process.py b/addons/website_sale/tests/test_sale_process.py index 54589763e73..879d96e1f28 100644 --- a/addons/website_sale/tests/test_sale_process.py +++ b/addons/website_sale/tests/test_sale_process.py @@ -500,6 +500,12 @@ class TestWebsiteSaleCheckoutAddress(TransactionCaseWithUserDemo, HttpCaseWithUs self.assertEqual(new_billing_use_same, so.partner_invoice_id) self.assertEqual(new_billing_use_same, so.partner_shipping_id) + # 6. forbid address page opening with wrong partners: + with self.assertRaises(Forbidden): + self.WebsiteSaleController.address(partner_id=self.env.user.partner_id.id, mode='billing') + with self.assertRaises(Forbidden): + self.WebsiteSaleController.address(partner_id=self.env.user.partner_id.id, mode='shipping') + def test_09_update_cart_address(self): self.env['ir.config_parameter'].sudo().set_param('auth_password_policy.minlength', 4) user = self.env['res.users'].create({ @@ -579,10 +585,12 @@ class TestWebsiteSaleCheckoutAddress(TransactionCaseWithUserDemo, HttpCaseWithUs # change also website env for `sale_get_order` to not change order partner_id with MockRequest(env, website=self.website.with_env(env), sale_order_id=so.id): - # Invalid addresses unaccesible to current customer + # Invalid addresses unaccessible to current customer with self.assertRaises(Forbidden): + # cannot use contact type addresses self.WebsiteSaleController.update_cart_address(partner_id=colleague.id) with self.assertRaises(Forbidden): + # unrelated partner self.WebsiteSaleController.update_cart_address(partner_id=self.env.user.partner_id.id) # Good addresses