Apply access rights only on resource record linked to an instance

Closes #12977
(grafted from 0fc48efcc5609f5e195e2d57516c2575dc6d3f34)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier committed 2024-01-30 17:09:22 +01:00
1 parent cfe83d64d2
commit 813dff1729
1 file changed
+5 -4
+5 -4
View File
@@ -6,7 +6,8 @@ from collections import defaultdict
from sql.conditionals import Coalesce
from trytond.i18n import lazy_gettext
from trytond.model import Index, ModelSQL, ModelStorage, ModelView, fields
from trytond.model import (
Index, Model, ModelSQL, ModelStorage, ModelView, fields)
from trytond.pool import Pool
from trytond.pyson import Eval
from trytond.tools import grouped_slice
@@ -80,13 +81,13 @@ class ResourceAccessMixin(ModelStorage):
with without_check_access():
records = cls.browse(records)
for record in records:
if record.resource:
if isinstance(record.resource, Model):
resources[record.resource.__class__].add(
record.resource.id)
for Model, ids in resources.items():
for RModel, ids in resources.items():
for sub_ids in grouped_slice(ids):
allowed.update(Model.search([
allowed.update(RModel.search([
('id', 'in', list(sub_ids)),
]))