Browse Source

Ignore cookies set by other TS services.

pull/24/head
Ben Kurtovic 12 years ago
parent
commit
e223412e79
2 changed files with 6 additions and 3 deletions
  1. +2
    -2
      pages/settings.mako
  2. +4
    -1
      toolserver/cookies.py

+ 2
- 2
pages/settings.mako View File

@@ -23,7 +23,7 @@
</select> </select>
<tt>.</tt> <tt>.</tt>
<select name="project"> <select name="project">
<% selected_project = cookies["EarwigDefaultProject"].value if "EarwigDefaultProject" in cookies else bot.wiki.get_site().lang %>
<% selected_project = cookies["EarwigDefaultProject"].value if "EarwigDefaultProject" in cookies else bot.wiki.get_site().project %>
% for code, name in projects: % for code, name in projects:
% if code == selected_project: % if code == selected_project:
<option value="${code}" selected="selected">${name}</option> <option value="${code}" selected="selected">${name}</option>
@@ -48,7 +48,7 @@
<ul> <ul>
% for cookie in cookies.itervalues(): % for cookie in cookies.itervalues():
<li> <li>
<tt>${cookie.key | h}</tt>: <tt>${cookie.value | h}</tt> (<tt>${cookie["path"] | h}</tt>)
<tt>${cookie.key | h}</tt>: <tt>${cookie.value | h}</tt>
<form action="${environ['PATH_INFO']}" method="post"> <form action="${environ['PATH_INFO']}" method="post">
<input type="hidden" name="action" value="delete"> <input type="hidden" name="action" value="delete">
<input type="hidden" name="cookie" value="${cookie.key | h}"> <input type="hidden" name="cookie" value="${cookie.key | h}">


+ 4
- 1
toolserver/cookies.py View File

@@ -12,13 +12,16 @@ class _CookieManager(SimpleCookie):
super(_CookieManager, self).__init__(environ["HTTP_COOKIE"]) super(_CookieManager, self).__init__(environ["HTTP_COOKIE"])
except (CookieError, AttributeError): except (CookieError, AttributeError):
super(_CookieManager, self).__init__() super(_CookieManager, self).__init__()
for cookie in self:
if self[cookie].value is False:
del self[cookie]


def value_decode(self, value): def value_decode(self, value):
unquoted = super(_CookieManager, self).value_decode(value)[0] unquoted = super(_CookieManager, self).value_decode(value)[0]
try: try:
return base64.b64decode(unquoted).decode("utf8"), value return base64.b64decode(unquoted).decode("utf8"), value
except (TypeError, UnicodeDecodeError): except (TypeError, UnicodeDecodeError):
return u"False", "False"
return False, "False"


def value_encode(self, value): def value_encode(self, value):
encoded = base64.b64encode(value.encode("utf8")) encoded = base64.b64encode(value.encode("utf8"))


Loading…
Cancel
Save