Как реализовать динамическую роль в Plone 3?

Я хочу разрешить доступ к определенному контенту определенным пользователям в течение ограниченного времени, используя «Динамическую роль» в Plone 3 ( http://collective-docs.readthedocs.org/en/latest/security/dynamic_roles.html ).

С этой целью я создал надстройку с копией вставки примера кода, за исключением того, что на данный момент getDummyRolesOnContext() всегда возвращает мою роль.

Но Plone никогда не вызывает и не создает экземпляр моего DummyLocalRoleAdapter, и, очевидно, мои пользователи никогда не получают назначенную роль.

Вот что я знаю до сих пор:

  • Моя динамическая роль определена в файле rolemap.xml и создается при установке надстройки.
  • Мое дополнение импортируется - исключение в его первой строке препятствует запуску Zope
  • Ни один из DummyLocalRoleAdapter не вызывается — я добавил все предупреждения и исключения.
  • Адаптер регистрируется.

Как мне продолжить отладку - какую волшебную часть мне не хватает?

Спасибо!


person Tyberius Prime    schedule 11.07.2012    source источник


Ответы (1)


Я предполагаю, что вам нужно как-то активировать подключаемый модуль PAS borg.localprole в acl_users:

https://github.com/plone/borg.localrole/blob/master/borg/localrole/utils.py

Возможно, в прошлом была запись установщика надстройки borg.localrole, но теперь, похоже, ее нет. Я предполагаю, что вам нужно вызвать действия из кода установки дополнения borg.localrole вручную в вашем собственном дополнении.

acl_users, если borg.localroles правильно установлен:

acl_users, когда активен borg.localroles

person Mikko Ohtamaa    schedule 11.07.2012
comment
Вот так выглядит мой acl_users - хотя я попробую переустановить. - person Tyberius Prime; 11.07.2012
comment
Попробуйте поставить точку останова pdb в borg.localroles.workspace и пройти через нее, чтобы увидеть 1) получает ли он вообще ваш адаптер 2) если он действительно читает его, то почему он потерян github.com/plone/borg.localrole/blob/master/borg/localrole/ - person Mikko Ohtamaa; 11.07.2012
comment
Точка останова не срабатывает. Где мне заставить портал перейти к setup_localrole_plugin()? - person Tyberius Prime; 12.07.2012