我想限制Plone站点根目录中的一个视图仅供已登录的成员使用。
我应该勾选哪种权限?
为了澄清,我想使用这个权限作为Zope3视图配置,并有一些在默认情况下工作。如果可以避免这种情况,我不想创建和分配权限来验证自己。
发布于 2012-06-05 22:03:09
在股票中,经过身份验证但不是匿名的用户可以更改他们自己的密码。您可以使用该权限。它被称为:
cmf.SetOwnPassword
发布于 2012-06-05 22:26:07
没有“已验证”权限,所有权限仅适用于特定操作,如果已验证用户需要能够执行该操作,则应将相应的权限分配给“已验证”角色。
要获得'Authenticated‘角色的(基于Zope2字符串的)权限的快速列表,请使用以下ZMI视图:
http://localhost:8080/Plone/manage_roleForm?role_to_manage=Authenticated我假设您在端口8080上运行站点,并将Plone对象命名为Plone。它显示当前分配的权限处于激活状态的多选列表中的所有权限。
在默认站点上,这个列表非常少,只分配了Set own password、Set own properties和Use external editor。对于前两个,Zope3等效项是defined in Products.CMFCore;它们是cmf.SetOwnPassword和cmf.SetOwnProperties;第三个目前没有Zope3等效项,但很容易定义,只需将以下代码添加到某个ZCML文件中:
<permission
id="plone.UseExternalEditor"
title="Use external editor"
/>Zope3权限只是使用有效python的Zope2对应权限的别名。
我真的不知道你想对你的视图做什么,但你最好的选择是找到一个合适的权限并将其分配给“Authenticated”角色,或者创建一个新的权限。
实际上,后者非常容易。
假设我想创建一个“Access foo bar”权限,我只需在ZCML文件中直接使用Zope3标识符注册它:
<permission
id="foobar.AccessFooBar"
title="Access foo bar"
/>这就是它的全部内容;"Access foo bar“权限现在将在ZMI中可见。
如果要在默认情况下将此权限授予特定角色,请将其列为包含的元素:
<permission
id="foobar.AccessFooBar"
title="Access foo bar">
<role name="Authenticated" />
</permission>这只适用于“全局”角色(在Zope根目录下定义),例如“经理”、“匿名”和“已验证”。
也可以使用rolemap.xml文件将其列在GenericSetup配置文件中,以便将此新权限分配给经过身份验证的角色:
<?xml version="1.0"?>
<rolemap>
<permissions>
<permission name="Access foo bar" acquire="False">
<role name="Authenticated"/>
</permission>
</permissions>
</rolemap>只有当你想要分配在Plone级别定义的权限时,你才需要使用后者,比如'Site Administrator‘或'Editor’。
https://stackoverflow.com/questions/10897439
复制相似问题