diff --git a/wiki/auth/categorie_public.py b/wiki/auth/categorie_public.py index f2e162e4..71e4676c 100644 --- a/wiki/auth/categorie_public.py +++ b/wiki/auth/categorie_public.py @@ -63,3 +63,14 @@ class PublicCategories(AnonymousAuth): sys.stderr.write("%r n'est pas dans la page %r, %r\n" % (cat, p.path[1:], categories)) return False + + def request(self, request, user_obj, **kw): + user_obj, cont = AnonymousAuth.request(self, request, user_obj, **kw) + if user_obj and not user_obj.valid and user_obj.auth_method == self.name: + 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") + return user_obj, cont +