From a51d14f5185614f432537e679bfe930ee478720d Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Tue, 5 Nov 2013 13:26:36 +0100 Subject: [PATCH] =?UTF-8?q?[wiki]=20D=C3=A9logue=20si=20page=20pas=20publi?= =?UTF-8?q?que=20et=20pr=C3=A9c=C3=A9dement=20pseudo-logu=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/action/deny.py | 72 +++++++++++++++++++++++++++++++++++ wiki/auth/categorie_public.py | 4 +- 2 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 wiki/action/deny.py diff --git a/wiki/action/deny.py b/wiki/action/deny.py new file mode 100644 index 00000000..c80151e9 --- /dev/null +++ b/wiki/action/deny.py @@ -0,0 +1,72 @@ +# -*- coding: iso-8859-1 -*- +""" + MoinMoin - login action + + The real login is done in MoinMoin.request. + Here is only some user notification in case something went wrong. + + @copyright: 2005-2006 Radomirs Cirskis , + 2006 MoinMoin:ThomasWaldmann + @license: GNU GPL, see COPYING for details. +""" + +from MoinMoin import userform, wikiutil +from MoinMoin.Page import Page +from MoinMoin.widget import html + +def execute(pagename, request): + _ = request.getText + request.theme.send_title(_("Access denied"), pagename=pagename) + # Start content (important for RTL support) + request.write(request.formatter.startContent("content")) + + request.write("Vous n'êtes pas autorisé à lire cette page.\n") + request.write(request.formatter.endContent()) + request.theme.send_footer(pagename) + request.theme.send_closing_html() +# return LoginHandler(pagename, request).handle() + +class LoginHandler: + def __init__(self, pagename, request): + self.request = request + self._ = request.getText + self.cfg = request.cfg + self.pagename = pagename + self.page = Page(request, pagename) + + def handle_multistage(self): + """Handle a multistage request. + + If the auth handler wants a multistage request, we + now set up the login form for that. + """ + _ = self._ + + def handle(self): + _ = self._ + request = self.request + form = request.values + + error = None + + islogin = form.get('login', '') + + if islogin: # user pressed login button + if request._login_multistage: + return self.handle_multistage() + if hasattr(request, '_login_messages'): + for msg in request._login_messages: + request.theme.add_msg(wikiutil.escape(msg), "error") + return self.page.send_page() + + else: # show login form + request.theme.send_title(_("Login"), pagename=self.pagename) + # Start content (important for RTL support) + request.write(request.formatter.startContent("content")) + + request.write(userform.getLogin(request)) + + request.write(request.formatter.endContent()) + request.theme.send_footer(self.pagename) + request.theme.send_closing_html() + diff --git a/wiki/auth/categorie_public.py b/wiki/auth/categorie_public.py index 71e4676c..a660ae4b 100644 --- a/wiki/auth/categorie_public.py +++ b/wiki/auth/categorie_public.py @@ -70,7 +70,7 @@ class PublicCategories(AnonymousAuth): p = urlparse.urlparse(request.url) url = urlparse.urlunparse(('https', p.netloc, p.path, "", "", "")) action = request.args.get("action", "") - if action != "login": - request.http_redirect(url + "?action=login") + if action != "deny": + request.http_redirect(url + "?action=deny") return user_obj, cont