summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-02-10 08:41:20 +0200
committerAlon Levy <alon@pobox.com>2015-02-10 08:41:46 +0200
commit669441e8ec328ef793697c4c83af31db8d52a192 (patch)
tree5384596c58533095a490c695261f8268f5f49b88 /src
parent62153af8b1b34b09fb020759c86e82a308ec6f19 (diff)
server: check for stale cookies on login
Diffstat (limited to 'src')
-rw-r--r--src/server/rz_api.py3
-rw-r--r--src/server/rz_user_db.py11
2 files changed, 13 insertions, 1 deletions
diff --git a/src/server/rz_api.py b/src/server/rz_api.py
index eb1a21d1..a3385e56 100644
--- a/src/server/rz_api.py
+++ b/src/server/rz_api.py
@@ -128,7 +128,8 @@ def diff_commit__set():
def index():
email_address = session.get('username')
rz_username = "Anonymous Stranger"
- if None != email_address:
+ # check for stale cookies
+ if None != email_address and current_app.user_db.has_email(email_address):
uid, u_account = current_app.user_db.lookup_user__by_email_address(email_address)
rz_username = escape(u_account.rz_username)
server_name = current_app.rz_config.SERVER_NAME
diff --git a/src/server/rz_user_db.py b/src/server/rz_user_db.py
index 149e1e00..c36a64ac 100644
--- a/src/server/rz_user_db.py
+++ b/src/server/rz_user_db.py
@@ -107,6 +107,17 @@ class User_DB(object):
uid, u = self.__lookup_user__by_email_address(email_address)
return self.__process_return_value(uid, u)
+ def has_email(self, email_address):
+ """
+ Does not throw exceptions, returns True if email is in the database,
+ False otherwise
+ """
+ # FIXME: avoid linear search
+ for uid, u in self.persistent_data_store.items():
+ if u.email_address == email_address:
+ return True
+ return False
+
def user_add(self, u_account):
"""
@return: the string uid of the newly added user