diff --git a/product/ERP5Type/ERP5Type.py b/product/ERP5Type/ERP5Type.py index 0d6fe8af75b5f2c6207b022adc3973dd9148ea96..5b4a0adccce4a3c5825b4ae6babddbf917f5d351 100644 --- a/product/ERP5Type/ERP5Type.py +++ b/product/ERP5Type/ERP5Type.py @@ -423,10 +423,25 @@ class ERP5TypeInformation(XMLObject, """Getter for 'type_base_category' property""" return list(self.base_category_list) - # XXX this is required for a bootstrap issue. + # XXX these methods, _baseGetTypeClass, getTypeMixinList, and + # getTypeInterfaceList, are required for a bootstrap issue that + # the portal type class Base Type is required for _aq_dynamic on + # Base Type. So surpress calling _aq_dynamic when obtaining information + # required for generating a portal type class by declaring these methods + # explicitly. def _baseGetTypeClass(self): return getattr(aq_base(self), 'type_class', None) + security.declareProtected(Permissions.AccessContentsInformation, + 'getTypeMixinList') + def getTypeMixinList(self): + return getattr(aq_base(self), 'type_mixin', ()) + + security.declareProtected(Permissions.AccessContentsInformation, + 'getTypeInterfaceList') + def getTypeInterfaceList(self): + return getattr(aq_base(self), 'type_interface', ()) + security.declareProtected(Permissions.AccessContentsInformation, 'getTypeClass') def getTypeClass(self):