From ebc23b594a73f2287694f1ff0ebff42d285617f8 Mon Sep 17 00:00:00 2001 From: Martin Trigaux Date: Tue, 6 Jun 2017 15:27:23 +0200 Subject: [PATCH] [FIX] web: display full error message In case of a MemoryError, there is no error message, the user gets a "Database restore error: " without any details. Instead fallback to the repr. This way, a wrong password is "Database restore error: Access denied" and a memoryerror "Database restore error: MemoryError()" Closes #17393 --- addons/web/controllers/main.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index 73bd64694ef..01395b48f0b 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -657,7 +657,7 @@ class Database(http.Controller): request.session.authenticate(name, post['login'], password) return http.local_redirect('/web/') except Exception, e: - error = "Database creation error: %s" % e + error = "Database creation error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/duplicate', type='http', auth="none", methods=['POST'], csrf=False) @@ -668,7 +668,7 @@ class Database(http.Controller): dispatch_rpc('db', 'duplicate_database', [master_pwd, name, new_name]) return http.local_redirect('/web/database/manager') except Exception, e: - error = "Database duplication error: %s" % e + error = "Database duplication error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/drop', type='http', auth="none", methods=['POST'], csrf=False) @@ -678,7 +678,7 @@ class Database(http.Controller): request._cr = None # dropping a database leads to an unusable cursor return http.local_redirect('/web/database/manager') except Exception, e: - error = "Database deletion error: %s" % e + error = "Database deletion error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/backup', type='http', auth="none", methods=['POST'], csrf=False) @@ -696,7 +696,7 @@ class Database(http.Controller): return response except Exception, e: _logger.exception('Database.backup') - error = "Database backup error: %s" % e + error = "Database backup error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/restore', type='http', auth="none", methods=['POST'], csrf=False) @@ -706,7 +706,7 @@ class Database(http.Controller): dispatch_rpc('db', 'restore', [master_pwd, name, data, str2bool(copy)]) return http.local_redirect('/web/database/manager') except Exception, e: - error = "Database restore error: %s" % e + error = "Database restore error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/change_password', type='http', auth="none", methods=['POST'], csrf=False) @@ -715,7 +715,7 @@ class Database(http.Controller): dispatch_rpc('db', 'change_admin_password', [master_pwd, master_pwd_new]) return http.local_redirect('/web/database/manager') except Exception, e: - error = "Master password update error: %s" % e + error = "Master password update error: %s" % str(e) or repr(e) return self._render_template(error=error) @http.route('/web/database/list', type='json', auth='none')