diff options
| author | Olivier Dony <odo@openerp.com> | 2014-09-08 16:53:11 +0200 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2014-09-08 16:54:10 +0200 |
| commit | d32d120a0ad5db2b58fd7eccbc60ea7b9eff8c18 (patch) | |
| tree | 5efcb2a25877a5d26e19d51c10ffeb3b8cadba2f | |
| parent | 491162e653c939f9c14f21697ed72db1b9fe4017 (diff) | |
| parent | 9ce08b78ceeacb17024380ce5747338b247a9773 (diff) | |
[MERGE] Forward-port of saas-5 up to 9ce08b7
| -rw-r--r-- | addons/point_of_sale/views/report_sessionsummary.xml | 2 | ||||
| -rw-r--r-- | addons/stock_account/stock_account.py | 3 | ||||
| -rw-r--r-- | addons/website/models/ir_http.py | 12 | ||||
| -rw-r--r-- | openerp/addons/base/ir/ir_http.py | 18 | ||||
| -rw-r--r-- | openerp/http.py | 6 |
5 files changed, 22 insertions, 19 deletions
diff --git a/addons/point_of_sale/views/report_sessionsummary.xml b/addons/point_of_sale/views/report_sessionsummary.xml index 5f0f2617654..2f44afaa61b 100644 --- a/addons/point_of_sale/views/report_sessionsummary.xml +++ b/addons/point_of_sale/views/report_sessionsummary.xml @@ -97,7 +97,6 @@ <th>Description</th> <th>Reference</th> <th>Partner</th> - <th>Type</th> <th>Account</th> <th class="text-right">Amount</th> </tr> @@ -108,7 +107,6 @@ <td><span t-field="line.name"/></td> <td><span t-field="line.ref"/></td> <td><span t-field="line.partner_id"/></td> - <td><span t-field="line.type"/></td> <td><span t-field="line.account_id"/></td> <td class="text-right"> <span t-field="line.amount" diff --git a/addons/stock_account/stock_account.py b/addons/stock_account/stock_account.py index 6dffebdb9c1..c5308fde462 100644 --- a/addons/stock_account/stock_account.py +++ b/addons/stock_account/stock_account.py @@ -260,8 +260,9 @@ class stock_move(osv.osv): def action_done(self, cr, uid, ids, context=None): self.product_price_update_before_done(cr, uid, ids, context=context) - super(stock_move, self).action_done(cr, uid, ids, context=context) + res = super(stock_move, self).action_done(cr, uid, ids, context=context) self.product_price_update_after_done(cr, uid, ids, context=context) + return res def _store_average_cost_price(self, cr, uid, move, context=None): ''' move is a browe record ''' diff --git a/addons/website/models/ir_http.py b/addons/website/models/ir_http.py index db41719a08b..f6a45eeb206 100644 --- a/addons/website/models/ir_http.py +++ b/addons/website/models/ir_http.py @@ -78,10 +78,14 @@ class ir_http(orm.AbstractModel): request.session['geoip'] = record if request.website_enabled: - if func: - self._authenticate(func.routing['auth']) - else: - self._auth_method_public() + try: + if func: + self._authenticate(func.routing['auth']) + else: + self._auth_method_public() + except Exception as e: + return self._handle_exception(e) + request.redirect = lambda url, code=302: werkzeug.utils.redirect(url_for(url), code) request.website = request.registry['website'].get_current_website(request.cr, request.uid, context=request.context) langs = [lg[0] for lg in request.website.get_languages()] diff --git a/openerp/addons/base/ir/ir_http.py b/openerp/addons/base/ir/ir_http.py index dae351540e5..c490043716d 100644 --- a/openerp/addons/base/ir/ir_http.py +++ b/openerp/addons/base/ir/ir_http.py @@ -63,12 +63,6 @@ class ir_http(osv.AbstractModel): def _auth_method_user(self): request.uid = request.session.uid if not request.uid: - if not request.params.get('noredirect'): - query = werkzeug.urls.url_encode({ - 'redirect': request.httprequest.url, - }) - response = werkzeug.utils.redirect('/web/login?%s' % query) - werkzeug.exceptions.abort(response) raise http.SessionExpiredException("Session expired") def _auth_method_none(self): @@ -102,7 +96,10 @@ class ir_http(osv.AbstractModel): def _handle_exception(self, exception): # If handle_exception returns something different than None, it will be used as a response - return request._handle_exception(exception) + try: + return request._handle_exception(exception) + except openerp.exceptions.AccessDenied: + return werkzeug.exceptions.Forbidden() def _dispatch(self): # locate the controller method @@ -115,11 +112,8 @@ class ir_http(osv.AbstractModel): # check authentication level try: auth_method = self._authenticate(func.routing["auth"]) - except Exception: - # force a Forbidden exception with the original traceback - return self._handle_exception( - convert_exception_to( - werkzeug.exceptions.Forbidden)) + except Exception as e: + return self._handle_exception(e) processing = self._postprocess_args(arguments, rule) if processing: diff --git a/openerp/http.py b/openerp/http.py index 15ed009d4df..a67b13b0bd5 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -590,6 +590,12 @@ class HttpRequest(WebRequest): be used as response.""" try: return super(HttpRequest, self)._handle_exception(exception) + except SessionExpiredException: + if not request.params.get('noredirect'): + query = werkzeug.urls.url_encode({ + 'redirect': request.httprequest.url, + }) + return werkzeug.utils.redirect('/web/login?%s' % query) except werkzeug.exceptions.HTTPException, e: return e |
