Fix several cases of assuming that a Profile always has a numeric ID, rather than a named key, which is untrue.

This commit is contained in:
Ian Gulliver
2015-12-24 15:26:43 -08:00
parent b90d3d7b44
commit 30a3e89bfc
3 changed files with 8 additions and 6 deletions

2
api.py
View File

@@ -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,

View File

@@ -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,

View File

@@ -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)