From 165a9e673b2320133e5ecbc9baa8b6144711b3f1 Mon Sep 17 00:00:00 2001 From: Christophe Matthieu Date: Thu, 10 Oct 2013 11:02:29 +0200 Subject: [PATCH] [IMP] website: ir.rule: add the http secure session in the eval context for access rules evaluation. bzr revid: chm@openerp.com-20131010090229-8cz9ophrqlayw00x --- addons/website/models/__init__.py | 1 + addons/website/models/ir_rule.py | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 addons/website/models/ir_rule.py diff --git a/addons/website/models/__init__.py b/addons/website/models/__init__.py index 4977118e925..818f943a8f6 100644 --- a/addons/website/models/__init__.py +++ b/addons/website/models/__init__.py @@ -3,3 +3,4 @@ import ir_fields import view import website +import ir_rule diff --git a/addons/website/models/ir_rule.py b/addons/website/models/ir_rule.py new file mode 100644 index 00000000000..dcb56795173 --- /dev/null +++ b/addons/website/models/ir_rule.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- + +from openerp.osv import osv +from openerp.addons.web.http import request +from openerp.tools.misc import unquote as unquote + + +class ir_rule(osv.osv): + _inherit = 'ir.rule' + + def _eval_context_for_combinations(self): + """Returns a dictionary to use as evaluation context for + ir.rule domains, when the goal is to obtain python lists + that are easier to parse and combine, but not to + actually execute them.""" + res = super(ir_rule, self)._eval_context_for_combinations() + res.update(session=unquote('session')) + return res + + def _eval_context(self, cr, uid): + """Returns a dictionary to use as evaluation context for + ir.rule domains.""" + res = super(ir_rule, self)._eval_context(cr, uid) + res.update(session=request and request.httprequest and request.httprequest.session) + return res