← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 719289] [NEW] [trunk] unrecoverable errors do not let the user logout to fix it

 

You have been subscribed to a public bug:

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.')

** Affects: openobject-client-web
     Importance: Low
     Assignee: OpenERP SA's Web Client R&D (openerp-dev-web)
         Status: Confirmed

-- 
[trunk] unrecoverable errors do not let the user logout to fix it
https://bugs.launchpad.net/bugs/719289
You received this bug notification because you are a member of C2C OERPScenario, which is subscribed to the OpenERP Project Group.



References