diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-09-23 14:34:26 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-09-23 14:34:26 +0200 |
| commit | 57168a9e90066ed6b3d274d5032a20bef342a00f (patch) | |
| tree | e6af71b6199d1e4bbd808580285242ceb4afde77 /addons/web/controllers/main.py | |
| parent | 2bbf3c516df41842302c10326fd6bcd14168a89d (diff) | |
| parent | a669433326430caab705ede8d48eecda16d3ee10 (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.py | 10 |
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): |
