From 9ff59d70f58adb7934854862ae850da25bc8c097 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 7 Oct 2019 16:55:17 +0100 Subject: [PATCH] wiki: Automatically redirect from /start pages Signed-off-by: Michael Tremer --- src/backend/wiki.py | 6 ++++++ src/web/wiki.py | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/backend/wiki.py b/src/backend/wiki.py index cc7bd167..4a900693 100644 --- a/src/backend/wiki.py +++ b/src/backend/wiki.py @@ -41,6 +41,12 @@ class Wiki(misc.Object): # Normalise links return os.path.normpath(path) + def page_exists(self, path): + page = self.get_page(path) + + # Page must have been found and not deleted + return page and not page.was_deleted() + def get_page_title(self, page, default=None): # Try to retrieve title from cache title = self.memcache.get("wiki:title:%s" % page) diff --git a/src/web/wiki.py b/src/web/wiki.py index a8a4e907..dfb46a94 100644 --- a/src/web/wiki.py +++ b/src/web/wiki.py @@ -254,6 +254,16 @@ class PageHandler(auth.CacheMixin, base.BaseHandler): # If the page does not exist, we send 404 if not page or page.was_deleted(): + # Handle /start links which were in the format of DokuWiki + if path.endswith("/start"): + # Strip /start from path + path = path[:-6] or "/" + + # Redirect user to page if it exists + page = self.backend.wiki.page_exists(path) + if page: + self.redirect(path) + raise tornado.web.HTTPError(404) # Fetch the latest revision -- 2.39.2