Mat*_*ias 6 python multilingual plone
如果我想Folder用plone.app.multilingual 翻译Archetype contenttype(例如),我有一个非常奇怪的行为.
错误消息:
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.
Run Code Online (Sandbox Code Playgroud)
我的环境:
我的用例:
我可以通过首先在网站的英语部分创建内容(文件夹)来重现此问题.内容是私有的,因为这是新内容的默认状态.
然后我尝试通过单击翻译菜单 - >将内容翻译成德语create German.完成... Insufficient Privileges出现错误.
如果我安装一个香草Plone 4.3.2和plone.app.multilingial没有我的大量插件一切正常.我很确定其中一个插件存在问题,但我需要了解导致此问题的原因.没关系,哪个插件打破了网站.
进一步...
由于这是一个权限问题,我首先尝试发布所有内容,然后将内容翻译成德语.这很好用!
那么,下一步是调试到plone.app.multilingual.我最终进入了add.py AddTraverser
问题出现在第37行的重定向上如果网址的一部分不可公开访问(匿名??),则会发生错误.
imho奇怪的是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)
Run Code Online (Sandbox Code Playgroud)
代替:
baseUrl = self.context.absolute_url()
url = '%s/@@add_at_translation?type=%s' % (baseUrl, name)
return self.request.response.redirect(url)
Run Code Online (Sandbox Code Playgroud)
这完全解决了我的情况.并且所有plone.app.multilingual测试仍然有效.
但我无法解释为什么?为什么没有定制它不起作用?
任何暗示都非常感谢!
为什么您的修复有效,可能与用户在遍历期间可能无法通过身份验证有关。这类似于为什么用户在浏览器视图期间可能无法进行身份验证' __init__。
这可能是一个错误,并且您的修复的拉取请求,以及通过没有它的失败来证明您的观点的测试,将是首选。
通过从(通过 ZMI)中过滤的错误中删除 Unauthorized,您应该能够获得更好的错误消息/Plone/error_log。我不确定,如何absolute_url在任何情况下提出未经授权的问题。
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |