До недавнего времени для хранения каких либо дополнительных данных для объекта я сам создавал адаптер объекта к интерфейсу IAnnotations. И всегда с целью обхода системы безопасности делал этот адаптер trusted=“true”.
Но сегодня я столкнулся с подобным адаптером в стороннем модуле - plone.portlets. И он не был обозначен как trusted. Следовательно при работе адаптера с моими объектами вылетала ошибка:
ForbiddenAttribute: ('__annotations__', <my.object…>)
Единственный вариант который я придумал это переопределить регистрацию этого адаптера в своём overrides.zcml и сделать его trusted=“true”.
Но тогда возникает вопрос - а как тогда это работает в Plone? Поиском по всем zcml и py файлам установленного Plone не нашёл каких либо переопределений этого адаптера. Может есть какой то другой способ разрешить доступ к атрибуту __annotations__ ?