From 30a3e89bfc8d55448920b170cb93a617b998bd92 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Thu, 24 Dec 2015 15:26:43 -0800 Subject: [PATCH] Fix several cases of assuming that a Profile always has a numeric ID, rather than a named key, which is untrue. --- api.py | 2 +- lib/models.py | 10 ++++++---- lib/session.py | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/api.py b/api.py index 2eb412b..c237037 100644 --- a/api.py +++ b/api.py @@ -228,7 +228,7 @@ class APIWrapper(webapp2.RequestHandler): @session.session_required def post(self): profile_str = str( - models.Client.profile.get_value_for_datastore(self.client).id()) + models.Client.profile.get_value_for_datastore(self.client).id_or_name()) ret = { 'status': 'ok', 'profile': profile_str, diff --git a/lib/models.py b/lib/models.py index 572f2ec..f49d359 100644 --- a/lib/models.py +++ b/lib/models.py @@ -376,13 +376,13 @@ class Subject(db.Model): if readable_only_by == Profile.ADMIN_KEY: ret['readable_only_by'] = 'admin' else: - ret['readable_only_by'] = str(readable_only_by.id()) + ret['readable_only_by'] = str(readable_only_by.id_or_name()) writable_only_by = Subject.writable_only_by.get_value_for_datastore(self) if writable_only_by: if writable_only_by == Profile.ADMIN_KEY: ret['writable_only_by'] = 'admin' else: - ret['writable_only_by'] = str(writable_only_by.id()) + ret['writable_only_by'] = str(writable_only_by.id_or_name()) return ret @classmethod @@ -518,7 +518,8 @@ class Message(db.Model): return { 'event_type': 'message', 'id': self.id_, - 'sender': str(Message.sender.get_value_for_datastore(self).id()), + 'sender': + str(Message.sender.get_value_for_datastore(self).id_or_name()), 'subject': self.parent().ToDict(), 'created': self.created, 'sender_message_id': self.sender_message_id, @@ -541,7 +542,8 @@ class Pin(db.Model): return { 'event_type': event_type, 'id': str(self.key().id()), - 'sender': str(Pin.sender.get_value_for_datastore(self).id()), + 'sender': + str(Pin.sender.get_value_for_datastore(self).id_or_name()), 'subject': self.parent().ToDict(), 'created': self.created, 'sender_message_id': self.sender_message_id, diff --git a/lib/session.py b/lib/session.py index eb3bf8c..ebcc0dc 100644 --- a/lib/session.py +++ b/lib/session.py @@ -71,7 +71,7 @@ def session_required(handler): self.request_json['client_id'], self.verified_google_user) logging.info('Client: %s', self.client.key().name()) logging.info('Profile: %s', - models.Client.profile.get_value_for_datastore(self.client).id()) + models.Client.profile.get_value_for_datastore(self.client).id_or_name()) if old_profile: self.client.profile.MergeFrom(old_profile)