2012-07-11 144 views
2

我想允許某些用戶在特定時間訪問某些內容, 使用Plone 3中的「動態角色」(http://collective-docs.readthedocs.org/en/latest/security/dynamic_roles.html)。如何在Plone 3中實現動態角色?

爲此,我創建了一個帶有示例代碼複製粘貼的插件 - 除了現在getDummyRolesOnContext()總是返回我的角色。

但Plone永遠不會調用或實例化我的DummyLocalRoleAdapter,顯然我的用戶永遠不會分配角色。

這是我目前所知:

  • 我的能動作用是在rolemap.xml定義,並得到的時創建附加安裝。
  • 我的插件正在導入 - 它的第一行中的例外防止Zope啓動
  • DummyLocalRoleAdapter沒有被調用 - 我已經用警告和例外標註了所有的DummyLocalRoleAdapter。
  • 適配器確實已註冊。

我該如何繼續調試 - 我失蹤的魔法部分是什麼?

謝謝!

回答

1

我的猜測是,你需要以某種方式激活borg.localprole PAS插件在acl_users:

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

可能有過borg.localrole附加在過去的安裝項,但現在似乎沒有一個。我的猜測是,您需要在自己的插件中手動調用borg.localrole插件設置代碼中的操作。

acl_users borg.localroles是否正確安裝時:

acl_users when borg.localroles is active

+0

這正是我acl_users樣子 - 雖然我給重新安裝試一試。 – 2012-07-11 09:20:13

+0

嘗試在borg.localroles.workspace中放入pdb斷點並逐步完成以查看1)是否它獲得了適配器2)如果它實際上讀取它,那麼爲什麼它會丟失https://github.com/plone/borg .localrole/blob/master/borg/localrole/workspace.py#L476 – 2012-07-11 13:33:04

+0

斷點不會觸發.-我在哪裏可以將門戶傳遞給setup_localrole_plugin()? – 2012-07-12 07:01:28