Use default access for ModelSQL based on table_query when method is extended

When the create/write/delete methods are extended, we should assume that
developer has implemented such access.

Closes #12757
This commit is contained in:
Cédric Krier
2023-11-16 18:55:47 +01:00
parent ca253a388c
commit e6d8dbd359
+7 -1
View File
@@ -571,7 +571,13 @@ class ModelAccess(DeactivableMixin, ModelSQL, ModelView):
for model in models:
Model = pool.get(model)
if callable(getattr(Model, 'table_query', None)):
access[model] = default_table_query
maccess = access[model] = default_table_query.copy()
if Model.create != ModelSQL.create:
maccess['create'] = default['create']
if Model.write != ModelSQL.write:
maccess['write'] = default['write']
if Model.delete != ModelSQL.delete:
maccess['delete'] = default['delete']
elif issubclass(Model, ModelSingleton):
access[model] = default_singleton
else: