|
... |
|
... |
306 |
elif self.preferences.email_address:
|
306 |
elif self.preferences.email_address:
|
307 |
icon_url = g.gravatar(self.preferences.email_address, default=None)
|
307 |
icon_url = g.gravatar(self.preferences.email_address, default=None)
|
308 |
return icon_url
|
308 |
return icon_url
|
309 |
|
309 |
|
310 |
@classmethod
|
310 |
@classmethod
|
|
|
311 |
def upsert(cls, username):
|
|
|
312 |
u = cls.query.get(username=username)
|
|
|
313 |
if u is not None: return u
|
|
|
314 |
try:
|
|
|
315 |
u = cls(username=username)
|
|
|
316 |
session(u).flush(u)
|
|
|
317 |
except pymongo.errors.DuplicateKeyError:
|
|
|
318 |
session(u).expunge(u)
|
|
|
319 |
u = cls.query.get(username=username)
|
|
|
320 |
return u
|
|
|
321 |
|
|
|
322 |
@classmethod
|
311 |
def by_email_address(cls, addr):
|
323 |
def by_email_address(cls, addr):
|
312 |
ea = EmailAddress.query.get(_id=addr)
|
324 |
ea = EmailAddress.query.get(_id=addr)
|
313 |
if ea is None: return None
|
325 |
if ea is None: return None
|
314 |
return ea.claimed_by_user()
|
326 |
return ea.claimed_by_user()
|
315 |
|
327 |
|