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:
2
api.py
2
api.py
@@ -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,
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user