[wiki-lenny/PageGraphicalEditor.py] Restreindre l'utilisation du GUI à l'édition

Les pages dans la catégorie CatégorieEditeurGraphiqueInterdit ne peuvent être
éditées au moyen de l'éditeur graphique. L'utilisateur est redirigé vers
l'éditeur texte

*BUGS*
Il y a trop d'effets de bords trop sales pour que je puisse me prononcer sur
la probabilité de bugs introduits par mon patch.

darcs-hash:20081018004435-bd074-baf51a18274088abe4e21b399cec8e4d3015b436.gz
This commit is contained in:
Antoine Durand-Gasselin 2008-10-18 02:44:35 +02:00
parent 46b78c472e
commit 148a75af9f

View file

@ -1,4 +1,4 @@
# -*- coding: iso-8859-1 -*-
# -*- coding: utf-8 -*-
"""
MoinMoin - Call the GUI editor (FCKeditor)
@ -52,7 +52,8 @@ class PageGraphicalEditor(PageEditor.PageEditor):
form = request.form
_ = self._
request.disableHttpCaching(level=2)
request.emit_http_headers()
page_categories = self.getCategories(request)
raw_body = ''
msg = None
@ -63,13 +64,24 @@ class PageGraphicalEditor(PageEditor.PageEditor):
# check edit permissions
if not request.user.may.write(self.page_name):
# L'effet de bord dans le test empêche-t-il la ligne suivante
# d'être exécutée ?
msg = _('You are not allowed to edit this page.')
elif not self.isWritable():
# même remarque.
msg = _('Page is immutable!')
elif self.rev:
# Trying to edit an old version, this is not possible via
# the web interface, but catch it just in case...
msg = _('Cannot edit old revisions!')
elif u"CatégorieEditeurGraphiqueInterdit" in page_categories:
msg =_('Cannot edit this page with the graphical editor')
request.theme.add_msg(msg, "error")
from MoinMoin.PageEditor import PageEditor
# Pour éviter à l'utilisateur de rester sur le cul, on le
# redirige vers l'éditeur texte
pg = PageEditor(request, self.page_name, **kw)
pg.sendEditor()
else:
# try to acquire edit lock
ok, edit_lock_message = self.lock.acquire()
@ -84,9 +96,14 @@ class PageGraphicalEditor(PageEditor.PageEditor):
# Did one of the prechecks fail?
if msg:
request.theme.add_msg(msg, "error")
# Il est manifestement hors de question d'avoir envoyé les
# headers http avant d'appeler cette fonction
self.send_page()
return
# par contre, il faut les envoyer dans le cas contraire
request.emit_http_headers()
# check if we want to load a draft
use_draft = None
if 'button_load_draft' in form: