[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
This commit is contained in:
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user