diff --git a/CHANGES.rst b/CHANGES.rst index 7f6b474073..3dda5b805a 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,7 +4,11 @@ Changelog 1.0a11 (unreleased) ------------------- -- Nothing changed yet. +Bugfixes: + +- Make import of LocalrolesModifiedEvent conditional, so plone.restapi + doesn't prevent Plone 4.3 deployments < 4.3.4 from booting. + [lgraf] 1.0a10 (2017-03-22) diff --git a/src/plone/restapi/deserializer/local_roles.py b/src/plone/restapi/deserializer/local_roles.py index 2b8eaa20e8..9b2997303f 100644 --- a/src/plone/restapi/deserializer/local_roles.py +++ b/src/plone/restapi/deserializer/local_roles.py @@ -1,15 +1,20 @@ # -*- coding: utf-8 -*- from AccessControl.interfaces import IRoleManager -from Products.CMFCore.interfaces import ICatalogAware - -from plone.app.workflow.events import LocalrolesModifiedEvent from plone.restapi.deserializer import json_body from plone.restapi.interfaces import IDeserializeFromJson +from Products.CMFCore.interfaces import ICatalogAware from zope.component import adapter from zope.component import getMultiAdapter from zope.event import notify -from zope.interface import Interface from zope.interface import implementer +from zope.interface import Interface + +try: + from plone.app.workflow.events import LocalrolesModifiedEvent + LOCALROLES_MODIFIED_EVENT_AVAILABLE = True +except ImportError: + # Plone < 4.3.4 + LOCALROLES_MODIFIED_EVENT_AVAILABLE = False marker = object() @@ -53,4 +58,5 @@ def __call__(self): if ICatalogAware(self.context) and (inherit_reindex or roles_reindex): self.context.reindexObjectSecurity() - notify(LocalrolesModifiedEvent(self.context, self.request)) + if LOCALROLES_MODIFIED_EVENT_AVAILABLE: + notify(LocalrolesModifiedEvent(self.context, self.request))