Do not enforce access rights when performing action on delete
Closes #15050 (grafted from e6d7121c620cec6986ab524f43b97f7adb5f7da9) --HG-- branch : 7.0
This commit is contained in:
1 parent
15c20fce89
commit
ccc6502c6d
1 file changed
+20
-19
@@ -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))
|
||||
|
||||
|
||||
Reference in new issue
Block a user