*: im_livechat, survey, utm, website_crm_iap_reveal, website_forum, website_livechat, website_sale, website_sale_comparison Before this commit all cookies were considered essential. This commit makes some of them optional. It also makes it possible for the website visitor to only accept the essential cookies. task-2800976 X-original-commit: 9a8a9463289a7446e9be0ef62ff895feb37a4de4 Part-of: odoo/odoo#101845 Co-authored-by: Benoit Socias <bso@odoo.com>
25 lines
853 B
Python
25 lines
853 B
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import models
|
|
from odoo.http import request
|
|
|
|
|
|
class IrHttp(models.AbstractModel):
|
|
_inherit = 'ir.http'
|
|
|
|
@classmethod
|
|
def get_utm_domain_cookies(cls):
|
|
return request.httprequest.host
|
|
|
|
@classmethod
|
|
def _set_utm(cls, response):
|
|
domain = cls.get_utm_domain_cookies()
|
|
for url_parameter, __, cookie_name in request.env['utm.mixin'].tracking_fields():
|
|
if url_parameter in request.params and request.httprequest.cookies.get(cookie_name) != request.params[url_parameter]:
|
|
response.set_cookie(cookie_name, request.params[url_parameter], domain=domain, cookie_type='optional')
|
|
|
|
@classmethod
|
|
def _post_dispatch(cls, response):
|
|
cls._set_utm(response)
|
|
super()._post_dispatch(response)
|