Do not enforce access rights when performing action on delete

Closes #15050
(grafted from e6d7121c620cec6986ab524f43b97f7adb5f7da9)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier committed 2026-08-31 13:43:41 +02:00
1 parent 15c20fce89
commit ccc6502c6d
1 file changed
+20 -19
+20 -19
View File
@@ -1526,7 +1526,7 @@ class ModelSQL(ModelStorage):
where=foreign_red_sql))
related_records = Model.browse([x[0] for x in cursor])
else:
with without_check_access(), inactive_records():
with inactive_records():
related_records = Model.search(
[(field_name, 'in', sub_ids)],
order=[])
@@ -1539,26 +1539,27 @@ class ModelSQL(ModelStorage):
sub_ids = list(sub_ids)
red_sql = reduce_ids(table.id, sub_ids)
for Model, field_name in foreign_keys_toupdate:
related_records = get_related_records(
Model, field_name, sub_ids)
if related_records:
Model.write(related_records, {
field_name: None,
})
with without_check_access():
for Model, field_name in foreign_keys_toupdate:
related_records = get_related_records(
Model, field_name, sub_ids)
if related_records:
Model.write(related_records, {
field_name: None,
})
for Model, field_name in foreign_keys_todelete:
related_records = get_related_records(
Model, field_name, sub_ids)
if related_records:
Model.delete(related_records)
for Model, field_name in foreign_keys_todelete:
related_records = get_related_records(
Model, field_name, sub_ids)
if related_records:
Model.delete(related_records)
for Model, field_name in foreign_keys_tocheck:
if get_related_records(Model, field_name, sub_ids):
error_args = Model.__names__(field_name)
raise ForeignKeyError(
gettext('ir.msg_foreign_model_exist',
**error_args))
for Model, field_name in foreign_keys_tocheck:
if get_related_records(Model, field_name, sub_ids):
error_args = Model.__names__(field_name)
raise ForeignKeyError(
gettext('ir.msg_foreign_model_exist',
**error_args))
super(ModelSQL, cls).delete(list(sub_records))