View Plone:如何为匿名用户启用特定视图的登录表单重定向?

View Plone:如何为匿名用户启用特定视图的登录表单重定向?,view,plone,skin,plone-4.x,View,Plone,Skin,Plone 4.x,我们正在维护一个Plone 4站点,并且有一个文件夹“foo”的特殊视图,只有具有特殊角色的经过身份验证的用户才能访问该文件夹。经过身份验证的用户可以如下方式访问视图: http://<host>:<port>/Plone/foo/@@special-view <action title="Special View" action_id="special-view" category="object" condition_expr="" url_expr="s

我们正在维护一个Plone 4站点,并且有一个文件夹“foo”的特殊视图,只有具有特殊角色的经过身份验证的用户才能访问该文件夹。经过身份验证的用户可以如下方式访问视图:

http://<host>:<port>/Plone/foo/@@special-view
<action title="Special View" action_id="special-view" category="object" condition_expr=""
  url_expr="string:${object_url}/special-view" visible="True">
  <permission value="Modify portal content" />
</action>
profiles/default/types/foo.xml
中的操作定义如下:

http://<host>:<port>/Plone/foo/@@special-view
<action title="Special View" action_id="special-view" category="object" condition_expr=""
  url_expr="string:${object_url}/special-view" visible="True">
  <permission value="Modify portal content" />
</action>

仔细阅读错误消息,看起来您正在调用基于浏览器视图的外观文件夹中的宏。 文档给出了原因提示,以及如何让错误正常地失败,如下所示:

或者,尝试使用其他(“oldskool”-)方法检索错误抛出变量,这些方法甚至在到达登录表单之前都不要求ZOPE管理员权限

另一种(我的首选)可能性是,使用浏览器模板交换皮肤模板,如文档“视图”一章中所述,这里还有一个示例用于说明(不承认我的一个未发布的插件):

您能给我们相应的
吗?我们没有
操作权限只是定义了如果在UI中向用户提供了操作按钮,那就可以了。有趣的是,如果您在文件夹上而不是在其子文件夹上遇到错误,请检查其wf状态和本地角色的权限(通过“共享”选项卡),如果它们为anon授予查看权限。要强制重定向,请参阅:
  <browser:page
      name="new-members"
      for="cnrd.vctypes.interfaces.ICnrdMemberFolder"
      class=".behaviors.cnrd_member_folder.ShowNewMembers"
      permission="cmf.ModifyPortalContent"
  />