Ирина Бессарабова
2010-10-28
Презентация Giving light to dark corners of z3c.form Рока Гарбаса на Plone конференции
Рок Гарбас выступил на ежегодной конференции Plone разработчиков в Бристоле (27-29 октября) с докладом, посвященным набирающему популярность фреймворку для создания форм z3.form. В итоге получился краткий справочник. Слайды презентации здесь.
2010-08-22
Маскировка под другого пользователя в Zope 3 представлении браузера
Как и у Josh Johnson, автора статьи, чей вольный перевод я привожу здесь, у меня тоже была необходимость выполнять кое-какие действия от пользователя с ролью Anonymous, так, чтобы при этом не возникала ошибка авторизации пользователя.
Возьмем, например, задачу добавления анонимными пользователеми контента в папку. Они заполняют форму, которая проходит валидацию и создается новый объект. Звучит просто. Однако, на практике это не так :)
В Zope 2 есть Proxy Roles для скриптов, однако если ваша форма создана в zope3 стиле в виде представления браузера, для вас это не вариант.
В решении этой задачи может помочь модуль AccessControl, который входит в состав Zope 3.
Код может выглядеть как-то так:
from AccessControl.SecurityManagement import newSecurityManager, getSecurityManager, setSecurityManager
from Products.CMFCore.utils import getToolByName
...
class MyViewClass(SomeBaseViewClass):
# without going into detail here, assume that __init__ is passed a context and request object
# that are set as instance properties.
def someProcessorMethod(self):
# I've created a folder called "Special Folder" at the root of my Plone site.
portal = getToolByName(self.context, 'portal_url').getPortalObject()
owner = portal['special-folder'].getWrappedOwner()
# stash the existing security manager so we can restore it
old_security_manager = getSecurityManager()
# create a new context, as the owner of the folder
newSecurityManager(self.request, user)
try:
# make the content
portal['special-folder'].invokeFactory('Document',
'anonymous-content-ftw',
title='Anonymous Content FTW!')
except:
# we want to ensure that setSecurityManager gets called
# in reality you should do more here!
pass
# restore the original context
setSecurityManager(old_security_manager)
Вот и все, что нужно сделать. Одно из преимуществ такого подхода это то, что владелец папки может измениться, а код все равно будет работать.
При использовании этого кода нужно быть особенно осторожным с тем, где его позволено вызывать. Например, если представление может применяться везде (в атрибуте for в директиве регистрации представления стоит *), то можно представить какой беспорядок может натворить анонимный пользователь на вашем сайте.
Кроме того, весь код, выполняющийся от имени владельца папки, необходимо заключить в блок try catch, для того, чтобы быть уверенным, что если даже в процессе его выполнения произойдет ошибка, менеджер безопасности восстановится в свое прежнее состояние.
2010-05-23
Plone 3 Products Development Cookbook
В мае этого года вышла в свет еще одна книга от издательства Packt для разработчиков Plone
Книга Juan Pablo Giménez и Marcos F. Romero ориентирована на разработчиков, уже имеющих опыт работы с Plone, и является сборником практических советов, рассказывающих вам как сделать какую-либо конкретную вещь в Plone. Из книги можно узнать:
- Как настроить новостной сайт и какие инструменты вам нужны перед созданием любого Plone сайта?
- Как обнаруживать и отлаживать ошибки в коде с помощью специальных средств?
- Как создавать новые контент-типы с помощью ArchGenXML?
- Как автоматически создавать новые контент-типы с помощью paster?
- Как создавать портлеты и управлять ими?
- Как улучшить производительность сайта, используя фичи Plone?
- Как управлять безопасностью, используя роли, группы, права и настройки конфигурации?
- Как тестировать код разными способами?
- Как использовать интернационализацию в Plone?
- Как интегрировать свой продукт с внешними сервисами используя XML-RPC?
- Как улучшить UI пользователя с помощью KSS?
Страница книги на Packt
2010-05-08
Professional Plone Development - Plone 4 edition
Мартин Аспели сообщил в своем блоге, что собирается написать новое издание своей книги Professional Plone Development для Plone 4.
Бесспорно, новое издание будет очень познавательной книгой, учитывая, что с момента последнего выпуска прошло 2,5 года, за которые появились новые технологии и инструменты для Plone разработчиков. Пока что Мартин Аспели анонсировал только свое намерение выпустить новое издание, дата выпуска не известна, однако, возможно, что книга выйдет в свет уже в конце этого года.
ссылки:
2010-05-03
Как позволить автору редактировать свой пост в Ploneboard
Если вы используете Ploneboard, вы наверно заметили, что по умолчанию автор не может редактировать или удалять свое сообщение в форуме. Ниже написано, как это исправить.
Чтобы исправить это недоразумение, идем в portal_workflow в ZMI. Находим там во вкладе Contents воркфлоу с именем ploneboard_comment_workflow. Заходим в него и идем на вкладку States. Здесь нас интересует состояние published. Щелкаем по нему и заходим на вкладку Permissions, где перечислены все права, с которыми работает наше воркфлоу и роли, которые существует на сайте. За право редактирование отвечает Modify portal content, на всякий случай снимаем галку с Acquire permission settings (отменяем наследование прав с уровня выше) и ставим галки для ролей Owner и Manager. Теперь что написано пером, то не вырубить топором - не про ваш форум :)
Алло, мы ищем таланты!
Уважаемое plone-сообщество!
Сейчас мы в процессе разработки нового сайта, посвященного plone, на русском языке. И нам нужна помощь, в первую очередь в наполнении сайта: переводы документации с plone.org, авторские статьи/руководства/рецепты, обучающие ролики и т.д. для любых уровней пользователей plone. Пожалуйста, если вы готовы участвовать в процессе, регистрируйтесь на сайте и размещайте свои материалы либо пишите мне (besja@yandex.ru). Прототип сайта доступен по адресу: http://62.152.35.6:15006/Plone.
Кроме того, мы хотим создать каталог компаний/фрилансеров предоставляющих услуги в разработке, создании сайтов на plone, хостинге и поддержке пользователей. Если вы делаете что-то из этого, пришлите, пожалуйста, мне информацию о себе/о компании или оставьте коммент к этому посту.
Если у вас есть время и возможность поучаствовать в работе сайта другим способом: исправить парочку багов (см. форум/баги), перевести Quills, придумать логотип, сверстать тему для сайта, или даже купить ящик пива его создателям, you are welcome :)
Заранее спасибо.
2010-04-07
Что может делать зарегистрированный пользователь на сайте
- Публиковать документы в разделе Документация
- Вести свой блог
- Участвовать в обсуждениях на форуме

