Revision ef20ea07 snf-astakos-app/astakos/im/models.py
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
39 | 39 |
from time import asctime |
40 | 40 |
from datetime import datetime, timedelta |
41 | 41 |
from base64 import b64encode |
42 |
from urlparse import urlparse, urlunparse
|
|
42 |
from urlparse import urlparse |
|
43 | 43 |
from random import randint |
44 | 44 |
|
45 | 45 |
from django.db import models, IntegrityError |
... | ... | |
374 | 374 |
owner = models.ForeignKey(AstakosUser) |
375 | 375 |
email = models.EmailField() |
376 | 376 |
|
377 |
class PendingThirdPartyUser(models.Model): |
|
378 |
""" |
|
379 |
Model for registring successful third party user authentications |
|
380 |
""" |
|
381 |
third_party_identifier = models.CharField('Third-party identifier', max_length=255, null=True, blank=True) |
|
382 |
provider = models.CharField('Provider', max_length=255, blank=True) |
|
383 |
email = models.EmailField(_('e-mail address'), blank=True) |
|
384 |
first_name = models.CharField(_('first name'), max_length=30, blank=True) |
|
385 |
last_name = models.CharField(_('last name'), max_length=30, blank=True) |
|
386 |
affiliation = models.CharField('Affiliation', max_length=255, blank=True) |
|
387 |
username = models.CharField(_('username'), max_length=30, unique=True, help_text=_("Required. 30 characters or fewer. Letters, numbers and @/./+/-/_ characters")) |
|
388 |
|
|
389 |
@property |
|
390 |
def realname(self): |
|
391 |
return '%s %s' %(self.first_name, self.last_name) |
|
392 |
|
|
393 |
@realname.setter |
|
394 |
def realname(self, value): |
|
395 |
parts = value.split(' ') |
|
396 |
if len(parts) == 2: |
|
397 |
self.first_name = parts[0] |
|
398 |
self.last_name = parts[1] |
|
399 |
else: |
|
400 |
self.last_name = parts[0] |
|
401 |
|
|
402 |
def save(self, **kwargs): |
|
403 |
if not self.id: |
|
404 |
# set username |
|
405 |
while not self.username: |
|
406 |
username = uuid.uuid4().hex[:30] |
|
407 |
try: |
|
408 |
AstakosUser.objects.get(username = username) |
|
409 |
except AstakosUser.DoesNotExist, e: |
|
410 |
self.username = username |
|
411 |
super(PendingThirdPartyUser, self).save(**kwargs) |
|
412 |
|
|
377 | 413 |
def create_astakos_user(u): |
378 | 414 |
try: |
379 | 415 |
AstakosUser.objects.get(user_ptr=u.pk) |
Also available in: Unified diff