[wiki] Délogue si page pas publique et précédement pseudo-logué
This commit is contained in:
parent
e4f4a7a82d
commit
a51d14f518
2 changed files with 74 additions and 2 deletions
72
wiki/action/deny.py
Normal file
72
wiki/action/deny.py
Normal file
|
@ -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 <nad2000@gmail.com>,
|
||||||
|
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()
|
||||||
|
|
|
@ -70,7 +70,7 @@ class PublicCategories(AnonymousAuth):
|
||||||
p = urlparse.urlparse(request.url)
|
p = urlparse.urlparse(request.url)
|
||||||
url = urlparse.urlunparse(('https', p.netloc, p.path, "", "", ""))
|
url = urlparse.urlunparse(('https', p.netloc, p.path, "", "", ""))
|
||||||
action = request.args.get("action", "")
|
action = request.args.get("action", "")
|
||||||
if action != "login":
|
if action != "deny":
|
||||||
request.http_redirect(url + "?action=login")
|
request.http_redirect(url + "?action=deny")
|
||||||
return user_obj, cont
|
return user_obj, cont
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue