Do not check read access when copying records

Closes #11949
This commit is contained in:
Sergi Almacellas Abellana
2022-12-19 14:38:29 +01:00
parent 37ebcfc633
commit 06beb3f188
2 changed files with 27 additions and 1 deletions
+3 -1
View File
@@ -440,7 +440,9 @@ class ModelStorage(Model):
or isinstance(f, fields.MultiValue))
and n not in mptt]
ids = list(map(int, records))
values = {d['id']: d for d in cls.read(ids, fields_names=fields_names)}
with Transaction().set_context(_check_access=False):
values = {
d['id']: d for d in cls.read(ids, fields_names=fields_names)}
field_defs = cls.fields_get(fields_names=fields_names)
default_values = cls.default_get(fields_names, with_rec_name=False)
to_create = []
+24
View File
@@ -272,6 +272,30 @@ class CopyTestCase(unittest.TestCase):
new_record, = TestAccess.copy(
[record], default={'name': 'nondefault'})
@with_transaction(context={'_check_access': True})
def test_copy_with_no_read_access(self):
"Test copying field with no read access"
pool = Pool()
Field = pool.get('ir.model.field')
FieldAccess = pool.get('ir.model.field.access')
TestAccess = pool.get('test.copy.access')
record, = TestAccess.create([{}])
field, = Field.search([
('model.model', '=', 'test.copy.access'),
('name', '=', 'name'),
])
FieldAccess.create([{
'field': field.id,
'group': None,
'perm_read': False,
'perm_write': False,
}])
new_record, = TestAccess.copy([record])
self.assertNotEqual(new_record.id, record.id)
class CopyTranslationTestCase(TranslationTestCase):
"Test copy translation"