diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/rz_api.py | 25 | ||||
| -rw-r--r-- | src/server/rz_user_db.py | 11 |
2 files changed, 16 insertions, 20 deletions
diff --git a/src/server/rz_api.py b/src/server/rz_api.py index a3385e56..2b462525 100644 --- a/src/server/rz_api.py +++ b/src/server/rz_api.py @@ -126,15 +126,22 @@ def diff_commit__set(): return __common_exec(op) def index(): + + # fetch rz_username for welcome message email_address = session.get('username') rz_username = "Anonymous Stranger" - # 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 - if ':' in server_name: - hostname, port = server_name.split(':') - else: - hostname, port = server_name, 80 + if None != email_address: # session cookie passed & contains uid (email_address) + try: + uid, u_account = current_app.user_db.lookup_user__by_email_address(email_address) + rz_username = escape(u_account.rz_username) + except Exception as e: + # may occur on user_db reset or malicious cookie != stale cookie, + # for which the user would at least be known to the user_db + log.exception(e) + + hostname = current_app.rz_config.SERVER_NAME + port = current_app.rz_config.listen_port + if ':' in hostname: + hostname = hostname.split(':')[0] + return render_template('index.html', rz_username=rz_username, hostname=hostname, port=port) diff --git a/src/server/rz_user_db.py b/src/server/rz_user_db.py index c36a64ac..149e1e00 100644 --- a/src/server/rz_user_db.py +++ b/src/server/rz_user_db.py @@ -107,17 +107,6 @@ 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 |
