我正在尝试使用MoinMoin以编程方式创建一个新的wiki页面。但它不允许我编辑页面,我如何提供用户创建此页面?
[Fri Mar 11 11:44:35] [root]@[dev] /usr/local/share/moin
# python2.6
Python 2.6.5 (r265:79063, Jun 4 2010, 21:43:07)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from MoinMoin.web.contexts import ScriptContext
>>> from MoinMoin.PageEditor import PageEditor
>>> request = ScriptContext('http://wiki.dev.itaas.com')
>>> pe = PageEditor(request, 'MyNewTestPage')
>>> pe.saveText('Hello World!', 0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.6/site-packages/MoinMoin/PageEditor.py", line 1068, in saveText
raise self.AccessDenied, msg
MoinMoin.PageEditor.AccessDenied: You are not allowed to edit this page!
在User
对象上设置request
后,它会创建页面,但会锁定整个wiki实例,从而创建或编辑并保存任何有401 Unauthorized
错误的新页面。
答案 0 :(得分:2)
您需要获得User
并将其附加到ScriptContext
对象,此处称为request
。
>>> import MoinMoin.user
>>> user = MoinMoin.user.get_by_email_address(request,'jarrod.roberson@mycompany.com')
>>> request.user = user
>>> pe = PageEditor(request, 'MyNewTestPage')
>>> pe.saveText('Hello World!', 0)
还有其他方法可以查找User
这个适合我的方法。我相信有更好的方法。
警告:确保您将脚本作为相应的UID运行(在我的情况下是apache:apache),否则您将损坏整个MoinMoin wiki。