Персональные инструменты
Вы здесь: Главная Блоги Authors besja

Ирина Бессарабова

2010-10-28

Презентация Giving light to dark corners of z3c.form Рока Гарбаса на Plone конференции

by Ирина Бессарабова — last modified 2010-10-28 18:14

Рок Гарбас выступил на ежегодной конференции Plone разработчиков в Бристоле (27-29 октября) с докладом, посвященным набирающему популярность фреймворку для создания форм z3.form. В итоге получился краткий справочник.  Слайды презентации здесь.  

2010-08-22

Маскировка под другого пользователя в Zope 3 представлении браузера

by Ирина Бессарабова — last modified 2010-08-22 19:15

Как и у 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

by Ирина Бессарабова — last modified 2010-05-23 12:15
Темы:

В мае этого года вышла в свет еще одна книга от издательства 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

by Ирина Бессарабова — last modified 2010-05-08 22:45
Темы:

Мартин Аспели сообщил в своем блоге, что собирается написать новое издание своей книги Professional Plone Development для Plone 4.

Бесспорно, новое издание будет очень познавательной книгой, учитывая, что с момента последнего выпуска прошло 2,5 года, за которые появились новые технологии и инструменты для Plone разработчиков.  Пока что Мартин Аспели анонсировал только свое намерение выпустить новое издание, дата выпуска не известна, однако, возможно, что книга выйдет в свет уже в конце этого года. 

ссылки:

Professional Plone Development

Блог Мартина Аспели

2010-05-03

Как позволить автору редактировать свой пост в Ploneboard

by Ирина Бессарабова — last modified 2010-05-03 21:45

Если вы используете Ploneboard, вы наверно заметили, что по умолчанию автор не может редактировать или удалять свое сообщение в форуме. Ниже написано, как это исправить.

Чтобы исправить это недоразумение, идем в portal_workflow в ZMI. Находим там во вкладе Contents воркфлоу с именем ploneboard_comment_workflow.  Заходим в него и идем на вкладку States. Здесь нас интересует состояние published. Щелкаем по нему и заходим на вкладку Permissions, где перечислены все права, с которыми работает наше воркфлоу и роли, которые существует на сайте. За право редактирование отвечает Modify portal content, на всякий случай снимаем галку с Acquire permission settings (отменяем наследование прав с уровня выше) и ставим галки для ролей Owner и Manager. Теперь что написано пером, то не вырубить топором - не про ваш форум :)

Алло, мы ищем таланты!

by Ирина Бессарабова — last modified 2010-05-03 21:30
Темы:

Уважаемое plone-сообщество!

Сейчас мы в процессе разработки нового сайта, посвященного plone, на русском языке. И нам нужна помощь, в первую очередь в наполнении сайта: переводы документации с plone.org, авторские статьи/руководства/рецепты, обучающие ролики и т.д. для любых уровней пользователей plone. Пожалуйста, если вы готовы участвовать в процессе, регистрируйтесь на сайте и размещайте свои материалы либо пишите мне (besja@yandex.ru). Прототип сайта доступен по адресу: http://62.152.35.6:15006/Plone.

Кроме того, мы хотим создать каталог компаний/фрилансеров предоставляющих услуги в разработке, создании сайтов на plone, хостинге и поддержке пользователей. Если вы делаете что-то из этого, пришлите, пожалуйста, мне информацию о себе/о компании или оставьте коммент к этому посту.

Если у вас есть время и возможность поучаствовать в работе сайта другим способом: исправить парочку багов (см. форум/баги), перевести Quills, придумать логотип, сверстать тему для сайта, или даже купить ящик пива его создателям, you are welcome :)

Заранее спасибо.

2010-04-07

Что может делать зарегистрированный пользователь на сайте

by Ирина Бессарабова — last modified 2010-04-07 13:40
Темы:
  • Публиковать документы в разделе Документация
  • Вести свой блог
  • Участвовать в обсуждениях на форуме