Skip to content

Commit 9accdba

Browse files
AQ wrap the fake DX object to fix request-based object access
1 parent ad5c178 commit 9accdba

File tree

1 file changed

+5
-6
lines changed
  • src/plone/restapi/deserializer/controlpanels

1 file changed

+5
-6
lines changed

src/plone/restapi/deserializer/controlpanels/__init__.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,11 @@
1616
from zope.schema.interfaces import ValidationError
1717

1818
from plone.restapi.behaviors import IBlocks
19-
from zope.globalrequest import getRequest
19+
from Acquisition import ImplicitAcquisitionWrapper
2020

2121

2222
@implementer(IDexterityContent, IBlocks)
2323
class FakeDXContext:
24-
def __init__(self, request):
25-
self.request = request
26-
self.REQUEST = getRequest()
2724
"""Fake DX content class, so we can re-use the DX field deserializers"""
2825

2926

@@ -49,7 +46,9 @@ def __call__(self, mask_validation_errors=True):
4946
errors = []
5047

5148
# Make a fake context
52-
fake_context = FakeDXContext(self.request)
49+
fake_context = FakeDXContext()
50+
wrapped_context = ImplicitAcquisitionWrapper(fake_context, self.context)
51+
5352

5453
for name, field in getFields(self.schema).items():
5554
field_data = schema_data.setdefault(self.schema, {})
@@ -59,7 +58,7 @@ def __call__(self, mask_validation_errors=True):
5958

6059
if name in data:
6160
deserializer = queryMultiAdapter(
62-
(field, fake_context, self.request), IFieldDeserializer
61+
(field, wrapped_context, self.request), IFieldDeserializer
6362
)
6463

6564
try:

0 commit comments

Comments
 (0)