如何在Plone 3中实现动态角色?
问题描述:
我想允许某些用户在特定时间访问某些内容, 使用Plone 3中的“动态角色”(http://collective-docs.readthedocs.org/en/latest/security/dynamic_roles.html)。如何在Plone 3中实现动态角色?
为此,我创建了一个带有示例代码复制粘贴的插件 - 除了现在getDummyRolesOnContext()总是返回我的角色。
但Plone永远不会调用或实例化我的DummyLocalRoleAdapter,显然我的用户永远不会分配角色。
这是我目前所知:
- 我的能动作用是在rolemap.xml定义,并得到的时创建附加安装。
- 我的插件正在导入 - 它的第一行中的例外防止Zope启动
- DummyLocalRoleAdapter没有被调用 - 我已经用警告和例外标注了所有的DummyLocalRoleAdapter。
- 适配器确实已注册。
我该如何继续调试 - 我失踪的魔法部分是什么?
谢谢!
答
我的猜测是,你需要以某种方式激活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样子 - 虽然我给重新安装试一试。 – 2012-07-11 09:20:13
尝试在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
断点不会触发.-我在哪里可以将门户传递给setup_localrole_plugin()? – 2012-07-12 07:01:28