[FIX] website : fix visitor cookie expiration

Before this commit, the visitor cookie was expiring by default on
browser session close on firefox. On Chrome, the cookie was always
valid after browser session closing.

On Firefox, the expiration date must be set to make the cookie still valid
after closing the browser.

The same thing happened with livechat_session cookies set
in context of livechat request.

The cookie expiration date (100 years to 'never' expire) have been added.

Linked to original Task ID : 2028059

Task ID : 2060381
PR #36126

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
David Beguin
2019-08-27 12:12:37 +00:00
parent ed19f90992
commit e74c6ef86a
2 changed files with 7 additions and 3 deletions
+2 -1
View File
@@ -106,7 +106,8 @@ class WebsiteVisitor(models.Model):
# If visitor does not exist
visitor_sudo = self._create_visitor(website_page.id)
sign = visitor_sudo._get_visitor_sign().get(visitor_sudo.id)
response.set_cookie('visitor_id', sign)
expiration_date = datetime.now() + timedelta(days=100*365) # never expire
response.set_cookie('visitor_id', sign, expires=expiration_date.timestamp())
else:
# Add page even if already in visitor_page_ids as checks on relations are done in many2many write method
vals = {
@@ -1,9 +1,11 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, timedelta
import json
from odoo import models, api, fields, _
from odoo.exceptions import UserError
import json
class WebsiteVisitor(models.Model):
@@ -99,4 +101,5 @@ class WebsiteVisitor(models.Model):
"uuid": chat_request_channel.uuid,
"type": "chat_request"
})
response.set_cookie('im_livechat_session', livechat_session)
expiration_date = datetime.now() + timedelta(days=100*365) # never expire
response.set_cookie('im_livechat_session', livechat_session, expires=expiration_date.timestamp())