gpt4 book ai didi

python - 权限不足 : plone. app.multilingual [1.x] - 翻译原型(prototype)内容

转载 作者:太空狗 更新时间:2023-10-30 00:17:27 24 4
gpt4 key购买 nike

如果我想用 plone.app.multilingual 翻译 Archetype 内容类型(例如 Folder),我会得到一个非常奇怪的行为。

错误信息:

Insufficient Privileges

You do not have sufficient privileges to view this page. If you believe you are
receiving this message in error, contact the site administration.

我的环境:

  • Plone = 4.3.2
  • plone.app.multilingual = 1.2.1
  • plone.multilingual = 1.2.1
  • plone.multilingualbehavior = 1.2
  • archetypes.multilingual = 1.2
  • 还有大约 40 个 Plone Addon(这让这变得非常复杂)

我的用例:

  • 配置了EN和DE两种语言
  • Plone 的 simple_publication_workflow 已配置。
  • 所有项目都处于私有(private)状态。 (LanguageRoot 文件夹也处于私有(private)状态)

我可以通过首先在网站的英文部分创建一个内容(文件夹)来重现这个问题。内容是私有(private)的,因为这是新内容的默认状态。

然后我尝试通过单击“翻译”菜单 -> 创建德语 将内容翻译成德语。完成...出现错误 Insufficient Privileges

如果我安装一个 vanilla Plone 4.3.2 和 plone.app.multilingial 而没有我大量的插件,一切正常。我很确定其中一个插件有问题,但我需要了解导致此问题的原因。没关系,哪个插件破坏了网站。

进一步...

由于这是一个权限问题,我首先尝试发布所有内容,然后将内容翻译成德语。这很有效!

好吧,下一步是调试 plone.app.multilingual。我最终进入了 add.py AddTraverser

问题出现在redirect on line 37如果 url 的一部分不可公开访问(匿名??),则会发生错误。

恕我直言,奇怪的是 DX 部分和 AT 部分的实现不同。

我将 AT 部分实现更改为:

self.context.REQUEST.set('type', name)
view = queryMultiAdapter((self.context, self.context.REQUEST),
name="add_at_translation")
return view.__of__(self.context)

代替:

baseUrl = self.context.absolute_url()
url = '%s/@@add_at_translation?type=%s' % (baseUrl, name)
return self.request.response.redirect(url)

这完全解决了我的问题。所有 plone.app.multilingual 测试仍在运行。

但我无法解释为什么?为什么没有自定义就无法工作?

非常感谢任何提示!

最佳答案

为什么您的修复有效,可能与用户在遍历期间可能未通过身份验证有关。这类似于为什么用户在浏览器 View 的 __init__ 期间可能无法通过身份验证。

这可能是一个错误,一个包含你的修复的拉取请求,以及一个通过没有它而失败来证明你的观点的测试,将是首选。

您应该能够通过从 /Plone/error_log(通过 ZMI)中的过滤错误中删除 Unauthorized 来获得更好的错误消息。我不确定 absolute_url 如何在任何情况下引发 Unauthorized。

关于python - 权限不足 : plone. app.multilingual [1.x] - 翻译原型(prototype)内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23109624/

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