]> git.ipfire.org Git - ipfire.org.git/commitdiff
docs: Move watch handler
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 1 Jul 2023 10:44:36 +0000 (10:44 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 1 Jul 2023 10:44:36 +0000 (10:44 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/web/__init__.py
src/web/docs.py
src/web/wiki.py

index bfd2934f3af152002db0a8248a9f319b0fc39b73..3da28e232b679f8cf2a6201dae7f2a21b5ee4fd3 100644 (file)
@@ -148,6 +148,7 @@ class Application(tornado.web.Application):
                        (r"/docs/watchlist", docs.WatchlistHandler),
                        (r"/docs/([A-Za-z0-9\-_\/]+)?/_edit", docs.ActionEditHandler),
                        (r"/docs/([A-Za-z0-9\-_\/]+)?/_render", docs.ActionRenderHandler),
+                       (r"/docs/([A-Za-z0-9\-_\/]+)?/_(watch|unwatch)", docs.ActionWatchHandler),
                        (r"/docs((?:[A-Za-z0-9\-_\/]+)?(?:.*)\.(?:\w+))$", docs.FileHandler),
                        (r"/docs([A-Za-z0-9\-_\/]+)?", docs.PageHandler),
 
@@ -349,7 +350,6 @@ class Application(tornado.web.Application):
 
                        # Actions
                        (r"((?:[A-Za-z0-9\-_\/]+)?(?:.*)\.(?:\w+))/_delete", wiki.ActionDeleteHandler),
-                       (r"([A-Za-z0-9\-_\/]+)?/_(watch|unwatch)", wiki.ActionWatchHandler),
                        (r"/actions/restore", wiki.ActionRestoreHandler),
                        (r"/actions/upload", wiki.ActionUploadHandler),
 
index ae93ce9b07e51b3eb4406dd6c7640e1b87a9f155..6682bcd090c68c3432dd8fa28a405ec4d49f9ccd 100644 (file)
@@ -214,6 +214,31 @@ class ActionRenderHandler(base.BaseHandler):
                self.finish(html)
 
 
+class ActionWatchHandler(base.BaseHandler):
+       @tornado.web.authenticated
+       @base.ratelimit(minutes=60, requests=180)
+       def get(self, path, action):
+               if path is None:
+                       path = "/"
+
+               page = self.backend.wiki.get_page(path)
+               if not page:
+                       raise tornado.web.HTTPError(404, "Page does not exist: %s" % path)
+
+               # Check permissions
+               if not self.backend.wiki.check_acl(path, self.current_user):
+                       raise tornado.web.HTTPError(403, "Access to %s not allowed for %s" % (path, self.current_user))
+
+               with self.db.transaction():
+                       if action == "watch":
+                               page.add_watcher(self.current_user)
+                       elif action == "unwatch":
+                               page.remove_watcher(self.current_user)
+
+               # Redirect back to page
+               self.redirect(page.url)
+
+
 class SearchHandler(base.BaseHandler):
        @base.ratelimit(minutes=5, requests=25)
        def get(self):
index 0c9858d78325d021213aae08464bf443656b0be3..4c4ba134536d85a7697d68c382f9ec6bd3688f6c 100644 (file)
@@ -94,31 +94,6 @@ class ActionRestoreHandler(base.BaseHandler):
                self.redirect(page.page)
 
 
-class ActionWatchHandler(base.BaseHandler):
-       @tornado.web.authenticated
-       @base.ratelimit(minutes=60, requests=180)
-       def get(self, path, action):
-               if path is None:
-                       path = "/"
-
-               page = self.backend.wiki.get_page(path)
-               if not page:
-                       raise tornado.web.HTTPError(404, "Page does not exist: %s" % path)
-
-               # Check permissions
-               if not self.backend.wiki.check_acl(path, self.current_user):
-                       raise tornado.web.HTTPError(403, "Access to %s not allowed for %s" % (path, self.current_user))
-
-               with self.db.transaction():
-                       if action == "watch":
-                               page.add_watcher(self.current_user)
-                       elif action == "unwatch":
-                               page.remove_watcher(self.current_user)
-
-               # Redirect back to page
-               self.redirect(page.url)
-
-
 class FilesHandler(base.BaseHandler):
        @tornado.web.authenticated
        def get(self, path):