Do not enforce access rights when performing action on delete

Closes #15050
(grafted from e6d7121c620cec6986ab524f43b97f7adb5f7da9)

--HG--
branch : 8.0
This commit is contained in:
Cédric Krier
2026-08-31 13:43:41 +02:00
parent f34a7c3a47
commit 2262e4b252
+18 -17
View File
@@ -1672,7 +1672,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', ids)],
order=[])
@@ -1680,24 +1680,25 @@ class ModelSQL(ModelStorage):
related_records = list(set(related_records) - set(records))
return related_records
for Model, field_name in foreign_keys_toupdate:
related_records = get_related_records(Model, field_name, 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, 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, ids)
if related_records:
Model.delete(related_records)
for Model, field_name in foreign_keys_todelete:
related_records = get_related_records(Model, field_name, ids)
if related_records:
Model.delete(related_records)
for Model, field_name in foreign_keys_tocheck:
if get_related_records(Model, field_name, 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, ids):
error_args = Model.__names__(field_name)
raise ForeignKeyError(
gettext('ir.msg_foreign_model_exist',
**error_args))
try:
cursor.execute(*table.delete(