[FIX][H14427] website_sale_signifyd: browserIpAddress required, always include

This commit is contained in:
Milan Cosnefroy
2024-09-24 23:32:08 +02:00
parent 4ea688c61d
commit 2f267790e9

View File

@@ -8,15 +8,16 @@ from odoo.http import request
class SaleOrder(models.Model):
_inherit = 'sale.order'
# Source IP for case creation - determination attempted at order creation and if necessary at confirmation
def _get_source_ip(self):
if request and request.env.user._is_public():
if request:
return request.httprequest.environ['REMOTE_ADDR']
return ''
signifyd_case_id = fields.Many2one('signifyd.case', readonly=1, copy=False)
singifyd_score = fields.Float(related='signifyd_case_id.score')
signifyd_checkpoint_action = fields.Selection(string='Signifyd Action', related='signifyd_case_id.checkpoint_action')
source_ip = fields.Char(default=_get_source_ip)
source_ip = fields.Char(default=_get_source_ip, help='IP address of the customer, used for signifyd case creation.')
def action_view_signifyd_case(self):
self.ensure_one()
@@ -109,6 +110,7 @@ class SaleOrder(models.Model):
"orderSessionId": order_session_id,
"orderId": self.id,
"checkoutToken": checkout_token,
"browserIpAddress": browser_ip_address,
"currency": self.partner_id.currency_id.name,
"orderChannel": "WEB",
"totalPrice": self.amount_total,
@@ -178,7 +180,4 @@ class SaleOrder(models.Model):
],
}
if browser_ip_address:
new_case_vals['purchase']['browserIpAddress'] = browser_ip_address
return new_case_vals