summaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorAlon Levy <alon@pobox.com>2015-05-25 11:45:28 +0300
committerAlon Levy <alon@pobox.com>2015-05-25 11:45:28 +0300
commitdbe98f6bc89107fa9294891455596c09f2053a3e (patch)
treeab08ed546e01be206332258b89d3756ed73e7198 /src/server
parent178b27f0cb2f8bdb7b912ed2604fca914b3cbb7d (diff)
server: pass username and not email in commit log to client. Fixes #563
Diffstat (limited to 'src/server')
-rw-r--r--src/server/db_op.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/src/server/db_op.py b/src/server/db_op.py
index abf183d7..265d745d 100644
--- a/src/server/db_op.py
+++ b/src/server/db_op.py
@@ -3,6 +3,8 @@ import hashlib
import logging
import re
+from flask import current_app # for user_db
+
from model.graph import Attr_Diff
from model.graph import Topo_Diff
from model.model import Link, RZDoc, RZCommit
@@ -827,20 +829,30 @@ class DBO_rzdoc__commit_log(DB_op):
db_q = DB_Query(q_arr)
self.add_db_query(db_q)
+ def _lookup_user_name(self, email):
+ ret = 'Anonymous'
+ if email is not None:
+ try:
+ user = current_app.user_db.lookup_user__by_email_address(email)
+ ret = user[1].rz_username
+ except:
+ pass
+ return ret
+
def process_result_set(self):
ret = []
# break out the blobs, return them - binary all the way home
for _, _, r_set in self.iter__r_set():
for row in r_set:
pairs = row.items()[0] # see query return statement
- for commit, operation, user in pairs:
+ for commit, operation, user_node_attrs in pairs:
if commit['blob'] == '':
# root commit, done
break
- # TODO: get author
diff = RZCommit.diff_obj_from_blob(commit['blob'])
+ user_name = self._lookup_user_name(user_node_attrs['user_name'] if user_node_attrs else None)
diff['meta'] = dict(ts_created=commit['ts_created'],
- author='Anonymous' if user is None else user['user_name'],
+ author=user_name,
commit=commit['hash'],
)
if None is not operation and 'sentence' in operation: