From 8912112191359f572f408c3b9a88b56db2e89c0a Mon Sep 17 00:00:00 2001 From: Valentin Samir Date: Tue, 21 May 2013 18:27:31 +0200 Subject: [PATCH] =?UTF-8?q?[wiki/auth/cas]=20redirection=20vers=20le=20wik?= =?UTF-8?q?i=20au=20logout,=20param=C3=A8tres=20pour=20l'url=20de=20fallba?= =?UTF-8?q?ck,=20possibiliter=20de=20forcer=20une=20r=C3=A9authentificatio?= =?UTF-8?q?n=20sur=20le=20CAS.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- wiki/auth/cas.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wiki/auth/cas.py b/wiki/auth/cas.py index 0e331b0b..12f50580 100644 --- a/wiki/auth/cas.py +++ b/wiki/auth/cas.py @@ -43,6 +43,7 @@ class PyCAS(object): url = self.server_url + self.logout_path if redirect_url: url += '?url=' + urllib.quote_plus(redirect_url) + url += '&service=' + urllib.quote_plus(redirect_url) return url def validate_url(self, service, ticket): @@ -78,12 +79,13 @@ class CASAuth(BaseAuth): def request(self, request, user_obj, **kw): ticket = request.args.get("ticket", "") action = request.args.get("action", "") + force = request.args.get("force", None) is not None logoutRequest = request.args.get("logoutRequest", []) p = urlparse.urlparse(request.url) url = urlparse.urlunparse(('https', p.netloc, p.path, "", "", "")) # authenticated user - if user_obj and user_obj.valid: + if not force and user_obj and user_obj.valid: return user_obj, True # anonymous @@ -102,7 +104,7 @@ class CASAuth(BaseAuth): else: u.valid = u.exists() if self.fallback_url and not u.valid: - request.http_redirect(self.fallback_url) + request.http_redirect("%s?action=%s&wiki_url=%s" % (self.fallback_url, self.action, url)) return u, True # login