Различия между версиями 17 и 18
Версия 17 от 2010-06-06 14:12:32
Размер: 12229
Редактор: RostislavDzinko
Комментарий:
Версия 18 от 2010-06-06 14:24:13
Размер: 12900
Редактор: RostislavDzinko
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 62: Строка 62:
Все интерфейсы ('''IAuthentication''', '''IUnauthenticatedPrincipal''', '''ILoginPassword''' и т.д.) перенесены в новый пакет ''zope.authentication'' наряду с несколькими вспомагательными вещами, такими как '''PrincipalSource''' и функцией '''checkPrincipal'''. Новый пакет имеет намного меньше зависимостей и определяет вбстрактные соглашения для реализации аутентификации внутри фреймворка Zope. Хотя импорты, обеспечивающие обратную совместимость, оставлены, настоятельно рекоммендуется обновить ваши импорты с целью использования пакета ''zope.authentication''. Все интерфейсы ('''IAuthentication''', '''IUnauthenticatedPrincipal''', '''ILoginPassword''' и т.д.) перенесены в новый пакет ''zope.authentication'' наряду с несколькими вспомагательными вещами, такими как '''!PrincipalSource''' и функцией '''checkPrincipal'''. Новый пакет имеет намного меньше зависимостей и определяет вбстрактные соглашения для реализации аутентификации внутри фреймворка Zope. Хотя импорты, обеспечивающие обратную совместимость, оставлены, настоятельно рекоммендуется обновить ваши импорты с целью использования пакета ''zope.authentication''.
Строка 72: Строка 72:
The original zope.app.security package now only contains several deprecated or application-specific permission definitions, python module protections, that are only likely to be needed with deprecated Through-The-Web development pattern, and ZMI-related browser views (login.html, zope.app.form view for PrincipalSource and so on), as well as backward-compatibility imports. So, if you’re not using TTW and/or standard ZMI browser views, you probably should review update your imports to a new places and drop dependency on zope.app.security to reduce package dependencies count. Ихначальный пакет ''zope.app.security'' содержит только несколько устаревших или специфичных для приложения прав, методов защиты модулей python, которые в общем случае нужны только для внедрение устаревшего шаблона разработки Through-The-Web, а также для поддержки ZMI видов обозревателя (''login.html'', вид для !PrincipalSource из ''zope.app.form'' и т.д.). Также сохранены импорты, обспечивающие обратную совместимость. Соответственно, если вы не используете TTW и/или стандартные браузерные виды ZMI, пересмотрите и обновите импорты для подхвата функциональности из новых мест и лишитесь зависимостей от ''zope.app.security'' с целью уменьшения общего их количества.
Строка 74: Строка 74:
Other packages, that used zope.app.security, like zope.securitypolicy are either already adapted to the changes or will be adapted soon. Другие пакеты, которые использовали ''zope.app.security''', как ''zope.securitypolicy'' или уже адаптированы к вышеописаным изменениям или будут в скором времени.

Что нового в Bluebream 1.0

Вопросы миграции

zope.app.keyreference -> zope.keyreference

Этот пакет был переименован в zope.keyreference и туда переехала вся функциональная часть. Новый пакет содержит небольшой обходной путь (workaround) для поддержки загружаемости старых персистентных keyrerefences без установки пакета zope.app.keyreference, так что последний теперь не нужен вообще. И все-таки мы настоятельно рекомендуем пересмотреть свой программный код на наличие импортов из zope.app.keyreference и поменять их на импорты из zope.keyreference.

zope.app.intid -> zope.intid

Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.intid с сохранением обратной совместимости импортов. Пересмотрите все ваши импорты из zope.app.intid, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.intid.

zope.app.catalog -> zope.catalog

Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.catalog. Пересмотрите все ваши импорты из zope.app.catalog, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.catalog.

zope.app.container -> zope.container

Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, была перенесена в zope.container. Пересмотрите все ваши импорты из zope.app.container, чтобы узнать, нельзя ли их заменить на прямые импорты из zope.container.

Вдобавок, исключения, которые импользуются в zope.container были изменены, так что если ваш код их отлавливает, вам нужно их пересмотреть:

  • DuplicationError в методе setitem изменено на KeyError.

  • UserError в NameChooser изменено на ValueError.

zope.app.component -> zope.security, zope.site

Реализация ZCML директивы <class> перенесена из этого пакета в zope.security. Пакеты, которые получали эту директиву из zope.app.component должны объявить прямую зависимость от zope.security, тем самым получив возможность полностью избавится зависимости от zope.app.component.

Вся функциональная часть этих пакетов, не связання с интерфейсом пользователя, перенесена в пакет zope.site с сохранением обратной совместимости импортов. Пересмотрите все ваши импорты из zope.app.component, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.site.

zope.app.folder -> zope.site, zope.container

Реализация класса zope.app.folder.Folder перенесена в zope.site.folder с сохранением обратной совместимости по импортам. Пересмотрите все ваши импорты из zope.app.folder, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.site.

Вдобавок, Folder становится реализацией интерфейса IContainer, который также является частью примеси функционала управления сайтом. В некоторых случаях, когда поддержка функционала управления сайтом не нужна, вы можете обойтись без класса Folder, используя вместо него "чистую" реализацию этого интерфейса - Container из пакета zope.container.

Базовый класс с реализацией контейнерного поведения класса Folder перенесен в zope.containerzope.site ипользует его для реализации Folder). Мы не считаем это изменение таковым, для которого необходимо сохранять обратную совместимость.

zc.copy -> zope.copy, zope.copypastemove, zope.location

Подключаемый механизм копирования, изначально разрабонанный как zc.copy был объединен с zope.location, zope.copypastemove и новым пакетом zope.copy. Пакет zope.copy теперь обеспечивает подключаемый механизм копирования объектов из zc.copy и не зависит ни от чего, кроме zope.interface. Пакет zope.copypastemove использует функцию копирования из zope.copy в своем классе ObjectCopier.

Пакет zope.location теперь предоставляет адаптер ICopyHook, который реализует механизм условного копирования, основанного на местоположениях (locations) объекта, который раньше обеспечивался с помощью zope.location.pickling.CopyPersistent. Заметьте, если вы не используете ZCML конфигурацию zope.location, вам придется зарегистрировать zope.location.pickling.LocationCopyHook вручную.

Хотя zope.location.pickling.locationCopy и zope.location.pickling.CopyPersistent и устарели в связи с появлением zope.copy, была добавлена обратная совместимость импортов. Обратитесь к документации по пакету zope.copy для получения информации об использовании нового механизма.

Новая версия пакета zc.copy теперь содержит только импорты для поддержки обратной совместимости и является устаревшей (deprecated). Для новых разработок используйте zope.copy.

Рефакторинг zope.app.security

Пакет zope.app.security был полностью отрефакторен и разбит на несколько мелких частей с целью уменьшения зависимостей и прояснения целей использования.

Реализация ZCML директивы <module> перенесена в пакет zope.security. Пакеты, в которых присутствовали зависимости от zope.app.security c целью доступа к использованию этой директивы, должны объявить прямую зависимость от zope.security, что также даст возможность полностью избавится зависимости от zope.app.security.

Модуль protectclass этого пакета перенесен в zope.security с сохранением импотов для обратной совместимости. Пересмотрите ваши импорты из zope.app.security, чтобы узнать, нельзя ли заменить их на прямые импорты из zope.security.

Все интерфейсы (IAuthentication, IUnauthenticatedPrincipal, ILoginPassword и т.д.) перенесены в новый пакет zope.authentication наряду с несколькими вспомагательными вещами, такими как PrincipalSource и функцией checkPrincipal. Новый пакет имеет намного меньше зависимостей и определяет вбстрактные соглашения для реализации аутентификации внутри фреймворка Zope. Хотя импорты, обеспечивающие обратную совместимость, оставлены, настоятельно рекоммендуется обновить ваши импорты с целью использования пакета zope.authentication.

Глобальный реестр пользователей (principal) и их ZCML директивы перенесены в новый пакет zope.principalregistry с сохранением обратной совместимости импортов. Если ваше приложение использует глобальных пользователей (principals), пересмотрите свой код и ZCML конфигурацию, на предмет обновления путей.

Функциональность локальной системы прав перенесена в пакет zope.app.localpermission. Эта функциональность является частью шаблона разработки Through-The-Web, которая больше не используется и не поддерживается в Zope Toolkit и Application, так что может считаться устаревшей. Как бы там ни было, она может служить прекрасным примером TTW компонента.

Словари прав и стандартные методы защиты для объектов Message и аттрибутов name, parent, наряду с основными общими правами, такими как zope.View и zope.ManageContent слиты в пакет zope.security.

Адаптеры из пакета zope.publisher: интерфейсов IHTTPCredentials и IFTPCredentials к интерфейсу ILoginPassword перемещены в zope.publisher, вместе с тем создавая зависимость zope.publisher от zope.authentication.

Ихначальный пакет zope.app.security содержит только несколько устаревших или специфичных для приложения прав, методов защиты модулей python, которые в общем случае нужны только для внедрение устаревшего шаблона разработки Through-The-Web, а также для поддержки ZMI видов обозревателя (login.html, вид для PrincipalSource из zope.app.form и т.д.). Также сохранены импорты, обспечивающие обратную совместимость. Соответственно, если вы не используете TTW и/или стандартные браузерные виды ZMI, пересмотрите и обновите импорты для подхвата функциональности из новых мест и лишитесь зависимостей от zope.app.security с целью уменьшения общего их количества.

Другие пакеты, которые использовали zope.app.security, как zope.securitypolicy или уже адаптированы к вышеописаным изменениям или будут в скором времени.

Перевод: Ростислав Дзинько

Раздел находится в стадии перевода

Документации/Bluebream/Bluebream-Что-Нового (последним исправлял пользователь RostislavDzinko 2010-06-06 16:23:39)