summaryrefslogtreecommitdiffstats
path: root/module/web/pyload
diff options
context:
space:
mode:
authorGravatar therazer <devnull@localhost> 2010-11-15 00:28:54 +0100
committerGravatar therazer <devnull@localhost> 2010-11-15 00:28:54 +0100
commit08f5c51555a931953423514887aef33bb18a3bce (patch)
tree1efed11bc7b08400845b1b3e1cb4152596dfd03c /module/web/pyload
parenthotfolder fix (diff)
downloadpyload-08f5c51555a931953423514887aef33bb18a3bce.tar.xz
making filebrowser compatible with relative paths
Diffstat (limited to 'module/web/pyload')
-rw-r--r--module/web/pyload/templatetags/quotepath.py29
-rw-r--r--module/web/pyload/views.py7
2 files changed, 32 insertions, 4 deletions
diff --git a/module/web/pyload/templatetags/quotepath.py b/module/web/pyload/templatetags/quotepath.py
new file mode 100644
index 000000000..a38932d59
--- /dev/null
+++ b/module/web/pyload/templatetags/quotepath.py
@@ -0,0 +1,29 @@
+from django.template.defaultfilters import stringfilter
+from django import template
+
+register = template.Library()
+
+quotechar = "::/"
+
+@stringfilter
+def quotepath(path):
+ try:
+ return path.replace("../", quotechar)
+ except AttributeError:
+ return path
+ except:
+ return ""
+
+
+register.filter(quotepath)
+
+@stringfilter
+def unquotepath(path):
+ try:
+ return path.replace(quotechar, "../")
+ except AttributeError:
+ return path
+ except:
+ return ""
+
+register.filter(unquotepath) \ No newline at end of file
diff --git a/module/web/pyload/views.py b/module/web/pyload/views.py
index c1cd31f5f..0fcabaede 100644
--- a/module/web/pyload/views.py
+++ b/module/web/pyload/views.py
@@ -14,6 +14,7 @@ from datetime import datetime
from time import localtime, strftime
from copy import deepcopy
from operator import itemgetter
+from pyload.templatetags import quotepath
from django.conf import settings
from django.contrib.auth.decorators import login_required
@@ -387,7 +388,7 @@ def root(request, type):
@permission('pyload.can_change_status')
@check_server
def path(request, path, type):
-
+ path = quotepath.unquotepath(path)
if os.path.isfile(path):
oldfile = path
path = os.path.dirname(path)
@@ -443,6 +444,4 @@ def path(request, path, type):
files = sorted(files, key=itemgetter('type', 'sort'))
- return render_to_response(join(settings.TEMPLATE, 'pathchooser.html'), {'cwd': cwd, 'files': files, 'parentdir': parentdir, 'type': type, 'oldfile': oldfile}, RequestContext(request))
-
-
+ return render_to_response(join(settings.TEMPLATE, 'pathchooser.html'), {'cwd': cwd, 'files': files, 'parentdir': parentdir, 'type': type, 'oldfile': oldfile}, RequestContext(request)) \ No newline at end of file