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 @session.session_required
def post(self): def post(self):
profile_str = str( 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 = { ret = {
'status': 'ok', 'status': 'ok',
'profile': profile_str, 'profile': profile_str,

View File

@@ -376,13 +376,13 @@ class Subject(db.Model):
if readable_only_by == Profile.ADMIN_KEY: if readable_only_by == Profile.ADMIN_KEY:
ret['readable_only_by'] = 'admin' ret['readable_only_by'] = 'admin'
else: 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) writable_only_by = Subject.writable_only_by.get_value_for_datastore(self)
if writable_only_by: if writable_only_by:
if writable_only_by == Profile.ADMIN_KEY: if writable_only_by == Profile.ADMIN_KEY:
ret['writable_only_by'] = 'admin' ret['writable_only_by'] = 'admin'
else: else:
ret['writable_only_by'] = str(writable_only_by.id()) ret['writable_only_by'] = str(writable_only_by.id_or_name())
return ret return ret
@classmethod @classmethod
@@ -518,7 +518,8 @@ class Message(db.Model):
return { return {
'event_type': 'message', 'event_type': 'message',
'id': self.id_, '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(), 'subject': self.parent().ToDict(),
'created': self.created, 'created': self.created,
'sender_message_id': self.sender_message_id, 'sender_message_id': self.sender_message_id,
@@ -541,7 +542,8 @@ class Pin(db.Model):
return { return {
'event_type': event_type, 'event_type': event_type,
'id': str(self.key().id()), '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(), 'subject': self.parent().ToDict(),
'created': self.created, 'created': self.created,
'sender_message_id': self.sender_message_id, '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) self.request_json['client_id'], self.verified_google_user)
logging.info('Client: %s', self.client.key().name()) logging.info('Client: %s', self.client.key().name())
logging.info('Profile: %s', 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: if old_profile:
self.client.profile.MergeFrom(old_profile) self.client.profile.MergeFrom(old_profile)