summaryrefslogtreecommitdiff
path: root/addons/web/controllers/main.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-09-23 14:34:26 +0200
committerChristophe Simonis <chs@odoo.com>2015-09-23 14:34:26 +0200
commit57168a9e90066ed6b3d274d5032a20bef342a00f (patch)
treee6af71b6199d1e4bbd808580285242ceb4afde77 /addons/web/controllers/main.py
parent2bbf3c516df41842302c10326fd6bcd14168a89d (diff)
parenta669433326430caab705ede8d48eecda16d3ee10 (diff)
[MERGE] forward port of branch saas-6 up to a669433
Diffstat (limited to 'addons/web/controllers/main.py')
-rw-r--r--addons/web/controllers/main.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py
index 7d5d68f9788..29d168af598 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -34,6 +34,7 @@ import openerp
import openerp.modules.registry
from openerp.addons.base.ir.ir_qweb import AssetsBundle, QWebTemplateNotFound
from openerp.modules import get_module_resource
+from openerp.service import model as service_model
from openerp.tools import topological_sort
from openerp.tools.translate import _
from openerp.tools import ustr
@@ -427,8 +428,8 @@ def content_disposition(filename):
version = int((request.httprequest.user_agent.version or '0').split('.')[0])
if browser == 'msie' and version < 9:
return "attachment; filename=%s" % escaped
- elif browser == 'safari':
- return u"attachment; filename=%s" % filename
+ elif browser == 'safari' and version < 537:
+ return u"attachment; filename=%s" % filename.encode('ascii', 'replace')
else:
return "attachment; filename*=UTF-8''%s" % escaped
@@ -962,7 +963,10 @@ class DataSet(http.Controller):
if method.startswith('_'):
raise AccessError(_("Underscore prefixed methods cannot be remotely called"))
- return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
+ @service_model.check
+ def checked_call(__dbname, *args, **kwargs):
+ return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
+ return checked_call(request.db, *args, **kwargs)
@http.route('/web/dataset/call', type='json', auth="user")
def call(self, model, method, args, domain_id=None, context_id=None):