odoo/openerp/addons
Christophe Simonis af9393d505 [FIX] orm: access error due to prefetch of indirectly referenced records.
The new-api record prefetching algorithm attempts
to load data for all known records from the requested
model (i.e. all IDs present in the environment cache),
regardless of how indirectly/remotely they were
referenced. An indirect parent record may therefore
be prefetched along with its directly browsed children,
possibly crossing company boundaries involuntarily.

This patch implements a fallback mechanism when
the prefetching failed due to what looks like an
ACL restriction.

The implementation of `_read_from_database` handle
ACL directly and set an `AccessError` as cache value
for restricted records.

If a model (like `mail.message`) overwrites `read` to
implements its own ACL checks and raises an `AccessError`
before calling `super()` (which will then call
`_read_from_database`), the cache will be not fill,
leading to an unexpected exception.

If this commit messae looks familiar to you, that's
simply because this is the new-api counterpart of
b7865502e4
2015-07-24 14:01:09 +02:00
..
base [I18N] Update translation terms from Transifex 2015-07-19 02:01:00 +02:00
test_access_rights [ADD] demonstrate broken handling of rules access denial in new API 2014-07-11 13:54:01 +02:00
test_convert [FIX] remove deprecated checks/fast_suite test attributes from standard modules 2015-01-15 14:31:40 +01:00
test_converter [FIX] report,qweb: use non-beaking space between amount and currency 2015-05-05 08:27:04 +02:00
test_documentation_examples [FIX] remove deprecated checks/fast_suite test attributes from standard modules 2015-01-15 14:31:40 +01:00
test_exceptions [MERGE] new v8 api by rco 2014-07-06 17:05:41 +02:00
test_impex [FIX] openerp: export None instead of False in raw_data mode 2015-07-09 11:49:04 +02:00
test_inherit [IMP] test_new_api: move test on delegate=True to module test_inherit 2015-02-18 16:43:20 +01:00
test_inherits [FIX] model: wrong alias used in read query for multi-inherited field 2015-05-12 13:42:27 +02:00
test_limits move tests 2014-02-09 01:37:45 +01:00
test_new_api [FIX] orm: access error due to prefetch of indirectly referenced records. 2015-07-24 14:01:09 +02:00
test_uninstall [REM] Unnecessary `size` parameters on char fields 2014-06-25 17:13:43 +02:00
test_workflow [FIX] remove deprecated checks/fast_suite test attributes from standard modules 2015-01-15 14:31:40 +01:00
__init__.py move tests 2014-02-09 01:37:45 +01:00