我正在使用plone 4.1,我需要通过代码创建一个门户网站角色,我找不到任何官方参考。
经过一些轻击,我发现了这个:
acl_users.portal_role_manager.addRole
这似乎创建了这个角色,但是在任何地方,安全选项卡或/@@ usergroup-userprefs上列出的角色中都没有角色。
然后我在门户对象上发现了一个“_addRole”(我认为它来自于鸡蛋/ Zope2-2.13.8-py2.6.egg / OFS / role.py)。
我在http://repositorio.interlegis.gov.br/ILSAAP/trunk/InstallUtils/installers/installRoles.py
中找到了这个用法我正在使用
portal._addRole(new_role)
try:
acl_users.portal_role_manager.addRole(new_role)
except:
pass
有效! :)
使用真实用例是变形虫的特定蓝图:
问题是:这是要走的路吗?
答案 0 :(得分:2)
角色存储在每个zodb对象中,因此您可以像这样修改
## Roles are store on __ac_roles__ attribute of object.
roles = list(portal.__ac_roles__)
roles += 'yournewrole'
portal.__ac_roles__ = tuple(roles)
我认为这对你的用例来说已经足够了。