diff options
| author | Christophe Simonis <chs@openerp.com> | 2013-11-07 15:32:12 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@openerp.com> | 2013-11-07 15:32:12 +0100 |
| commit | a48e79335509f96f9dd386b8ca08f6f7de494f52 (patch) | |
| tree | 9576fe3fe29f07cb2ad93be8e5f14efedc0ceb75 /addons/web/static/src/js/openerpframework.js | |
| parent | 8dd53f66524a492e733f9fa3dcc89c037487e107 (diff) | |
[FIX] web: correct cookie parsing.
avoid reading wrong cookie by matching the whole cookie name
bzr revid: chs@openerp.com-20131107143212-50hrpvkaw3gxxlop
Diffstat (limited to 'addons/web/static/src/js/openerpframework.js')
| -rw-r--r-- | addons/web/static/src/js/openerpframework.js | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/addons/web/static/src/js/openerpframework.js b/addons/web/static/src/js/openerpframework.js index 1d688505a06..9f3a6352511 100644 --- a/addons/web/static/src/js/openerpframework.js +++ b/addons/web/static/src/js/openerpframework.js @@ -1209,15 +1209,14 @@ openerp.TranslationDataBase = openerp.Class.extend(/** @lends instance.Translati openerp._t = new openerp.TranslationDataBase().build_translation_function(); openerp.get_cookie = function(c_name) { - if (document.cookie.length > 0) { - var c_start = document.cookie.indexOf(c_name + "="); - if (c_start != -1) { - c_start = c_start + c_name.length + 1; - var c_end = document.cookie.indexOf(";", c_start); - if (c_end == -1) { - c_end = document.cookie.length; - } - return unescape(document.cookie.substring(c_start, c_end)); + var cookies = document.cookie ? document.cookie.split('; ') : []; + for (var i = 0, l = cookies.length; i < l; i++) { + var parts = cookies[i].split('='); + var name = parts.shift(); + var cookie = parts.join('='); + + if (c_name && c_name === name) { + return cookie; } } return ""; |
