c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #22061
[Bug 719289] Re: [trunk] unrecoverable errors do not let the user logout to fix it
** Project changed: openobject-web => openobject-client-web
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/719289
Title:
[trunk] unrecoverable errors do not let the user logout to fix it
Status in OpenERP Web Client:
Confirmed
Bug description:
The web client should never leave the user on a state where the user
cannot logout or fix the problem.
For example if security settings are misconfigured with audit_trail, the user can get an "unrecoverable error" with a traceback after logging in as non-admin, and then cannot find a way to logout to be able to fix it as admin.
If possible, these "unrecoverable errors" should be handled more like the recoverable ones that bring you back to the previous page (see the 2 attached screenshots for comparison), but in this case it should perhaps log you out or offer the option to do it.
Any other solution can be considered, as long as the user can easily
find a way to logout and get a chance to fix it as admin.
Here is an example of typical traceback for unrecoverable error:
Unrecoverable error in the server.
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cprequest.py", line 541, in run
self.respond(pi)
File "/usr/lib/python2.6/site-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cprequest.py", line 624, in respond
self.handle_error()
File "/usr/lib/python2.6/site-packages/CherryPy-3.1.2-py2.6.egg/cherrypy/_cprequest.py", line 746, in handle_error
self.error_response()
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/controllers/root.py", line 35, in _cp_on_error
message = errorpage.render()
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/controllers/error_page.py", line 48, in render
return self.__render(value)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/openobject/tools/_expose.py", line 182, in func_wrapper
res = func(*args, **kw)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/controllers/error_page.py", line 68, in __render
maintenance = proxy.status()
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/rpc.py", line 396, in <lambda>
return lambda *args: self(name, *args)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/rpc.py", line 405, in __call__
self._resource, *args)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/rpc.py", line 357, in execute
return self.gateway.execute(obj, method, *args)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/rpc.py", line 147, in execute
return self.__execute(obj, method, args)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/rpc.py", line 133, in __execute
common.error(_('Application Error'), err.backtrace)
File "/home2/gass/OpenERP/trunk/openobject-client-web/6.0/addons/openerp/utils/common.py", line 24, in error
raise openobject.errors.TinyError(message=msg, title=title or _("Error"))
TinyError: Traceback (most recent call last):
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/netsvc.py", line 489, in dispatch
result = ExportService.getService(service_name).dispatch(method, auth, params)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/service/web_services.py", line 599, in dispatch
res = fn(db, uid, *params)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/addons/audittrail/audittrail.py", line 511, in execute
res = my_fct(db, uid, model, method, *args)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/addons/audittrail/audittrail.py", line 493, in my_fct
rule_ids = rule_pool.search(cr, uid, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/osv/orm.py", line 1736, in search
return self._search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/osv/orm.py", line 3983, in _search
self.pool.get('ir.model.access').check(cr, access_rights_uid or user, self._name, 'read', context=context)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/tools/misc.py", line 823, in cached_result
result2 = fn(self2, cr, *args[:self.skiparg-2], **kwargs2)
File "/home2/gass/OpenERP/trunk/openobject-server/6.0/bin/addons/base/ir/ir_model.py", line 514, in check
raise except_orm(_('AccessError'), msgs[mode] % (model_name, groups) )
except_orm: ('AccessError', u'You can not read this document (audittrail.rule) ! Be sure your user belongs to one of these groups: Employee.')
References