<h6>{{ _("Upload Newer Revision") }}</h6>
- <form method="POST" action="/actions/upload" enctype="multipart/form-data">
+ <form method="POST" action="/docs/_upload" enctype="multipart/form-data">
{% raw xsrf_form_html() %}
<input type="hidden" name="path" value="{{ file.path }}">
<div class="card-body">
<h6 class="card-title">{{ _("Upload File") }}</h6>
- <form method="POST" action="/actions/upload" enctype="multipart/form-data">
+ <form method="POST" action="/docs/_upload" enctype="multipart/form-data">
{% raw xsrf_form_html() %}
<input type="hidden" name="path" value="{{ path }}">
(r"/docs/search", docs.SearchHandler),
(r"/docs/tree", docs.TreeHandler),
(r"/docs/watchlist", docs.WatchlistHandler),
+ (r"/docs/_upload", docs.UploadHandler),
(r"/docs/([A-Za-z0-9\-_\/]+)?/_edit", docs.EditHandler),
(r"/docs/([A-Za-z0-9\-_\/]+)?/_render", docs.RenderHandler),
(r"/docs/([A-Za-z0-9\-_\/]+)?/_(watch|unwatch)", docs.WatchHandler),
# Actions
(r"/actions/restore", wiki.ActionRestoreHandler),
- (r"/actions/upload", wiki.ActionUploadHandler),
# Serve any static files
(r"/static/(.*)", tornado.web.StaticFileHandler, { "path" : self.settings.get("static_path") }),
self.finish(html)
+class UploadHandler(base.BaseHandler):
+ @tornado.web.authenticated
+ @base.ratelimit(minutes=60, requests=24)
+ def post(self):
+ path = self.get_argument("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))
+
+ try:
+ filename, data, mimetype = self.get_file("file")
+
+ # Use filename from request if any
+ filename = self.get_argument("filename", filename)
+
+ # XXX check valid mimetypes
+
+ with self.db.transaction():
+ file = self.backend.wiki.upload(path, filename, data,
+ mimetype=mimetype, author=self.current_user,
+ address=self.get_remote_ip())
+
+ except TypeError as e:
+ raise e
+
+ self.redirect("%s/_files" % path)
+
+
class WatchHandler(base.BaseHandler):
@tornado.web.authenticated
@base.ratelimit(minutes=60, requests=180)
from . import base
from . import ui_modules
-class ActionUploadHandler(base.BaseHandler):
- @tornado.web.authenticated
- @base.ratelimit(minutes=60, requests=24)
- def post(self):
- path = self.get_argument("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))
-
- try:
- filename, data, mimetype = self.get_file("file")
-
- # Use filename from request if any
- filename = self.get_argument("filename", filename)
-
- # XXX check valid mimetypes
-
- with self.db.transaction():
- file = self.backend.wiki.upload(path, filename, data,
- mimetype=mimetype, author=self.current_user,
- address=self.get_remote_ip())
-
- except TypeError as e:
- raise e
-
- self.redirect("%s/_files" % path)
-
-
class ActionRestoreHandler(base.BaseHandler):
@tornado.web.authenticated
@base.ratelimit(minutes=60, requests=24)