gpt4 book ai didi

plone - 如何通过python代码添加门户角色

转载 作者:行者123 更新时间:2023-12-02 02:21:53 24 4
gpt4 key购买 nike

我在 plone 4.1 上,我需要通过代码创建一个门户角色,但我找不到任何官方引用。

经过一些 grepping 我发现了这个:

acl_users.portal_role_manager.addRole

这似乎创建了角色,但角色 afaict 在任何地方都不可用,既不在安全选项卡中,也不在/@@usergroup-userprefs 上列出的角色中。

然后我在门户对象上也发现了一个“_addRole”(我认为它来自 eggs/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

有效! :)

使用实际用例是变形器的特定蓝图:

https://github.com/simahawk/collective.blueprint.usersandgroups/blob/master/collective/blueprint/usersandgroups/blueprint.py#L62

问题是:这是要走的路吗?

最佳答案

角色本地存储在每个 zodb 对象中,因此您可以那样修改

## Roles are store on __ac_roles__ attribute of object.
roles = list(portal.__ac_roles__)
roles += 'yournewrole'
portal.__ac_roles__ = tuple(roles)

我认为这对您的用例来说已经足够了。

关于plone - 如何通过python代码添加门户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769242/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com