MoinMoin 1.9 программно создает страницу ошибки: MoinMoin.PageEditor.AccessDenied: Вы не можете редактировать эту страницу! - PullRequest
1 голос
/ 11 марта 2011

Я пытаюсь создать новую вики-страницу программно с помощью MoinMoin. Но это не позволяет мне редактировать страницу, как мне предоставить пользователю создать эту страницу как?

[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.

1 Ответ

2 голосов
/ 11 марта 2011

Вам нужно получить 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.

...