diff --git a/app.fcgi b/app.fcgi index f27542d..6093b52 100755 --- a/app.fcgi +++ b/app.fcgi @@ -27,18 +27,21 @@ def write_access_log(response): @app.route("/") def index(): - cookies = parse_cookies(request.environ) - return render_template("index.mako", environ=request.environ, cookies=cookies) + root = request.environ["SCRIPT_NAME"] + cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) + return render_template("index.mako", root=root, environ=request.environ, cookies=cookies) @app.route("/settings") def settings(): - cookies = parse_cookies(request.environ) - return render_template("settings.mako", environ=request.environ, cookies=cookies) + root = request.environ["SCRIPT_NAME"] + cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) + return render_template("settings.mako", root=root, environ=request.environ, cookies=cookies) @app.route("/debug") def debug(): - cookies = parse_cookies(request.environ) - return render_template("debug.mako", environ=request.environ, cookies=cookies) + root = request.environ["SCRIPT_NAME"] + cookies = parse_cookies(root, request.environ.get("HTTP_COOKIE")) + return render_template("debug.mako", root=root, environ=request.environ, cookies=cookies) if __name__ == '__main__': WSGIServer(app).run() diff --git a/copyvios/cookies.py b/copyvios/cookies.py index 7fcac54..0344168 100644 --- a/copyvios/cookies.py +++ b/copyvios/cookies.py @@ -3,16 +3,15 @@ import base64 from Cookie import CookieError, SimpleCookie from datetime import datetime, timedelta -from os import path class _CookieManager(SimpleCookie): MAGIC = "--cpv2" - def __init__(self, environ): - self._path = path.dirname(environ["SCRIPT_NAME"]) + def __init__(self, path, cookies): + self._path = path try: - super(_CookieManager, self).__init__(environ["HTTP_COOKIE"]) - except (CookieError, KeyError): + super(_CookieManager, self).__init__(cookies) + except CookieError: super(_CookieManager, self).__init__() for cookie in self.keys(): if self[cookie].value is False: @@ -38,8 +37,8 @@ class _CookieManager(SimpleCookie): return self._path -def parse_cookies(environ): - return _CookieManager(environ) +def parse_cookies(path, cookies): + return _CookieManager(path, cookies) def set_cookie(headers, cookies, key, value, days=0): cookies[key] = value diff --git a/templates/debug.mako b/templates/debug.mako index d01d6cd..c5ead57 100644 --- a/templates/debug.mako +++ b/templates/debug.mako @@ -1,4 +1,4 @@ -<%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Debug - Earwig\'s Copyvio Detector'"/> +<%include file="/support/header.mako" args="title='Debug - Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> -<%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> +<%include file="/support/footer.mako" args="cookies=cookies"/> diff --git a/templates/index.mako b/templates/index.mako index 80408f4..70998bf 100644 --- a/templates/index.mako +++ b/templates/index.mako @@ -1,4 +1,4 @@ -<%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Earwig\'s Copyvio Detector'"/>\ +<%include file="/support/header.mako" args="title='Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> <%namespace module="copyvios" import="main, highlight_delta"/>\ <%namespace module="copyvios.misc" import="urlstrip"/>\ <% @@ -158,4 +158,4 @@ % endif -<%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> +<%include file="/support/footer.mako" args="cookies=cookies"/> diff --git a/templates/settings.mako b/templates/settings.mako index aae4c9b..149d007 100644 --- a/templates/settings.mako +++ b/templates/settings.mako @@ -1,6 +1,6 @@ <%namespace module="copyvios.settings" import="main"/>\ <% bot, status, langs, projects = main(environ, headers, cookies) %>\ -<%include file="/support/header.mako" args="environ=environ, cookies=cookies, title='Settings - Earwig\'s Copyvio Detector'"/>\ +<%include file="/support/header.mako" args="title='Settings - Earwig\'s Copyvio Detector', root=root, cookies=cookies"/> <%! from json import dumps, loads %>\ % if status:
@@ -106,4 +106,4 @@ % else:

No cookies!

% endif -<%include file="/support/footer.mako" args="environ=environ, cookies=cookies"/> +<%include file="/support/footer.mako" args="cookies=cookies"/> diff --git a/templates/support/footer.mako b/templates/support/footer.mako index 9fdead0..3419b3e 100644 --- a/templates/support/footer.mako +++ b/templates/support/footer.mako @@ -1,4 +1,4 @@ -<%page args="environ, cookies"/>\ +<%page args="cookies"/>\ <%namespace module="copyvios.background" import="get_desc_url"/>\